diff --git a/generate/requirements.txt b/generate/requirements.txt
index e2f30d43ab7842631b9e627b50dc79e87fb27c4f..1282836520fb11d6c80d4eadc9964dbccd3a3c05 100644
--- a/generate/requirements.txt
+++ b/generate/requirements.txt
@@ -1,4 +1,4 @@
 --extra-index-url https://test.pypi.org/simple/
 
-hfg @ git+ssh://git@i10git.cs.fau.de/terraneo/hyteg-form-generator.git@b1fc76d83c82c5a46dc74ae2e44eb42a56b8de6f
+hfg @ git+ssh://git@i10git.cs.fau.de/terraneo/hyteg-form-generator.git@7a34a9c06147551bef2183bccd6ad479c313aa5a
 tomli >= 1.1.0 ; python_version < "3.11"
diff --git a/operators/curl_curl/N1E1ElementwiseCurlCurl.cpp b/operators/curl_curl/N1E1ElementwiseCurlCurl.cpp
index 3aeff715a8883af6e9a8360cfb406247435e4ed3..50887f1c54c8ec495c31de2eb18306e0e09d58ce 100644
--- a/operators/curl_curl/N1E1ElementwiseCurlCurl.cpp
+++ b/operators/curl_curl/N1E1ElementwiseCurlCurl.cpp
@@ -58,7 +58,7 @@ N1E1ElementwiseCurlCurl::apply(const n1e1::N1E1VectorFunction<double> &src,
     // However, we must not zero out anything that is not flagged with the
     // specified BCs. Therefore, we first zero out everything that flagged, and
     // then, later, the halos of the highest dim primitives.
-    dst.interpolate(real_c(0), level, flag);
+    dst.interpolate(walberla::numeric_cast<double>(0), level, flag);
   }
 
   if (storage_->hasGlobalCells()) {
@@ -83,22 +83,30 @@ N1E1ElementwiseCurlCurl::apply(const n1e1::N1E1VectorFunction<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       apply_macro_3D(
 
@@ -151,22 +159,30 @@ N1E1ElementwiseCurlCurl::toMatrix(const std::shared_ptr<SparseMatrixProxy> &mat,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       toMatrix_macro_3D(
 
@@ -207,22 +223,30 @@ void N1E1ElementwiseCurlCurl::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-        const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-        const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-        const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-        const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-        const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-        const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)cell.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)cell.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_0comp2 =
+            (double)cell.getCoordinates()[0][2];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)cell.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)cell.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_1comp2 =
+            (double)cell.getCoordinates()[1][2];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)cell.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)cell.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_2comp2 =
+            (double)cell.getCoordinates()[2][2];
+        const double macro_vertex_coord_id_3comp0 =
+            (double)cell.getCoordinates()[3][0];
+        const double macro_vertex_coord_id_3comp1 =
+            (double)cell.getCoordinates()[3][1];
+        const double macro_vertex_coord_id_3comp2 =
+            (double)cell.getCoordinates()[3][2];
 
         computeInverseDiagonalOperatorValues_macro_3D(
 
diff --git a/operators/curl_curl/N1E1ElementwiseCurlCurl.hpp b/operators/curl_curl/N1E1ElementwiseCurlCurl.hpp
index 88e4ef5b0bef57f9d0b2851ec3c25be3b06dea98..b163507ca2ade7a878673d5e095ce702e7a4c240 100644
--- a/operators/curl_curl/N1E1ElementwiseCurlCurl.hpp
+++ b/operators/curl_curl/N1E1ElementwiseCurlCurl.hpp
@@ -26,24 +26,24 @@
 
 #pragma once
 
-#include "hyteg/n1e1functionspace/N1E1VectorFunction.hpp"
+#include "hyteg/n1e1functionspace/N1E1MacroCell.hpp"
+
+#include "hyteg/communication/Syncing.hpp"
 
 #include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
 
+#include "hyteg/operators/Operator.hpp"
+
+#include "hyteg/solvers/Smoothables.hpp"
+
 #include "hyteg/primitivestorage/PrimitiveStorage.hpp"
 
 #include "core/DataTypes.h"
 
-#include "hyteg/n1e1functionspace/N1E1MacroCell.hpp"
+#include "hyteg/n1e1functionspace/N1E1VectorFunction.hpp"
 
 #include "hyteg/LikwidWrapper.hpp"
 
-#include "hyteg/solvers/Smoothables.hpp"
-
-#include "hyteg/communication/Syncing.hpp"
-
-#include "hyteg/operators/Operator.hpp"
-
 #include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
 
 #define FUNC_PREFIX
@@ -103,8 +103,8 @@ private:
   /// -------------
   ///     89     202       2       0      1              0                 0 3
   void toMatrix_macro_3D(
-      int64_t *RESTRICT _data_dst, int64_t *RESTRICT _data_src,
-      const Cell &cell, const uint_t level, double macro_vertex_coord_id_0comp0,
+      idx_t *RESTRICT _data_dst, idx_t *RESTRICT _data_src, const Cell &cell,
+      const uint_t level, double macro_vertex_coord_id_0comp0,
       double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2,
       double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1,
       double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0,
diff --git a/operators/curl_curl/noarch/N1E1ElementwiseCurlCurl_toMatrix_macro_3D.cpp b/operators/curl_curl/noarch/N1E1ElementwiseCurlCurl_toMatrix_macro_3D.cpp
index 4e2dd22663875095a275b1f85dd101ab85f5f42d..2076c6d02d4ec7158b0a19352fab63903bd02e47 100644
--- a/operators/curl_curl/noarch/N1E1ElementwiseCurlCurl_toMatrix_macro_3D.cpp
+++ b/operators/curl_curl/noarch/N1E1ElementwiseCurlCurl_toMatrix_macro_3D.cpp
@@ -56,7 +56,7 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, int64_t * RESTRICT  _data_src, const Cell& cell, const uint_t level, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( idx_t * RESTRICT  _data_dst, idx_t * RESTRICT  _data_src, const Cell& cell, const uint_t level, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
        const double tmp_WHITE_UP_0 = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
@@ -703,7 +703,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]));
@@ -722,42 +722,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::WHITE_UP );
          
-             _data_mat[0] = (basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))*elMat_0_0;
-             _data_mat[1] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)*elMat_0_1;
-             _data_mat[2] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)*elMat_0_2;
-             _data_mat[3] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)*elMat_0_3;
-             _data_mat[4] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)*elMat_0_4;
-             _data_mat[5] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)*elMat_0_5;
-             _data_mat[6] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)*elMat_1_0;
-             _data_mat[7] = (basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))*elMat_1_1;
-             _data_mat[8] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)*elMat_1_2;
-             _data_mat[9] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)*elMat_1_3;
-             _data_mat[10] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)*elMat_1_4;
-             _data_mat[11] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)*elMat_1_5;
-             _data_mat[12] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)*elMat_2_0;
-             _data_mat[13] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)*elMat_2_1;
-             _data_mat[14] = (basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))*elMat_2_2;
-             _data_mat[15] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)*elMat_2_3;
-             _data_mat[16] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)*elMat_2_4;
-             _data_mat[17] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)*elMat_2_5;
-             _data_mat[18] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)*elMat_3_0;
-             _data_mat[19] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)*elMat_3_1;
-             _data_mat[20] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)*elMat_3_2;
-             _data_mat[21] = (basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))*elMat_3_3;
-             _data_mat[22] = basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)*elMat_3_4;
-             _data_mat[23] = basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)*elMat_3_5;
-             _data_mat[24] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)*elMat_4_0;
-             _data_mat[25] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)*elMat_4_1;
-             _data_mat[26] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)*elMat_4_2;
-             _data_mat[27] = basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)*elMat_4_3;
-             _data_mat[28] = (basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))*elMat_4_4;
-             _data_mat[29] = basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)*elMat_4_5;
-             _data_mat[30] = basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)*elMat_5_0;
-             _data_mat[31] = basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)*elMat_5_1;
-             _data_mat[32] = basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)*elMat_5_2;
-             _data_mat[33] = basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)*elMat_5_3;
-             _data_mat[34] = basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)*elMat_5_4;
-             _data_mat[35] = (basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))*elMat_5_5;
+             _data_mat[0] = ((real_t)((basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))*elMat_0_0));
+             _data_mat[1] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)*elMat_0_1));
+             _data_mat[2] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)*elMat_0_2));
+             _data_mat[3] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)*elMat_0_3));
+             _data_mat[4] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)*elMat_0_4));
+             _data_mat[5] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)*elMat_0_5));
+             _data_mat[6] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)*elMat_1_0));
+             _data_mat[7] = ((real_t)((basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))*elMat_1_1));
+             _data_mat[8] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)*elMat_1_2));
+             _data_mat[9] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)*elMat_1_3));
+             _data_mat[10] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)*elMat_1_4));
+             _data_mat[11] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)*elMat_1_5));
+             _data_mat[12] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)*elMat_2_0));
+             _data_mat[13] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)*elMat_2_1));
+             _data_mat[14] = ((real_t)((basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))*elMat_2_2));
+             _data_mat[15] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)*elMat_2_3));
+             _data_mat[16] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)*elMat_2_4));
+             _data_mat[17] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)*elMat_2_5));
+             _data_mat[18] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)*elMat_3_0));
+             _data_mat[19] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)*elMat_3_1));
+             _data_mat[20] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)*elMat_3_2));
+             _data_mat[21] = ((real_t)((basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))*elMat_3_3));
+             _data_mat[22] = ((real_t)(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)*elMat_3_4));
+             _data_mat[23] = ((real_t)(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)*elMat_3_5));
+             _data_mat[24] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)*elMat_4_0));
+             _data_mat[25] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)*elMat_4_1));
+             _data_mat[26] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)*elMat_4_2));
+             _data_mat[27] = ((real_t)(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)*elMat_4_3));
+             _data_mat[28] = ((real_t)((basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))*elMat_4_4));
+             _data_mat[29] = ((real_t)(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)*elMat_4_5));
+             _data_mat[30] = ((real_t)(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)*elMat_5_0));
+             _data_mat[31] = ((real_t)(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)*elMat_5_1));
+             _data_mat[32] = ((real_t)(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)*elMat_5_2));
+             _data_mat[33] = ((real_t)(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)*elMat_5_3));
+             _data_mat[34] = ((real_t)(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)*elMat_5_4));
+             _data_mat[35] = ((real_t)((basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))*elMat_5_5));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -769,7 +769,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]));
@@ -788,42 +788,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::WHITE_DOWN );
          
-             _data_mat[0] = Dummy_394*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0));
-             _data_mat[1] = Dummy_395*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[2] = Dummy_396*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[3] = Dummy_397*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[4] = Dummy_398*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[5] = Dummy_399*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[6] = Dummy_400*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[7] = Dummy_401*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1));
-             _data_mat[8] = Dummy_402*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[9] = Dummy_403*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[10] = Dummy_404*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[11] = Dummy_405*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[12] = Dummy_406*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[13] = Dummy_407*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[14] = Dummy_408*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2));
-             _data_mat[15] = Dummy_409*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[16] = Dummy_410*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[17] = Dummy_411*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[18] = Dummy_412*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[19] = Dummy_413*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[20] = Dummy_414*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[21] = Dummy_415*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3));
-             _data_mat[22] = Dummy_416*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[23] = Dummy_417*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[24] = Dummy_418*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[25] = Dummy_419*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[26] = Dummy_420*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[27] = Dummy_421*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[28] = Dummy_422*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4));
-             _data_mat[29] = Dummy_423*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[30] = Dummy_424*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[31] = Dummy_425*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[32] = Dummy_426*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[33] = Dummy_427*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[34] = Dummy_428*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[35] = Dummy_429*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5));
+             _data_mat[0] = ((real_t)(Dummy_394*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))));
+             _data_mat[1] = ((real_t)(Dummy_395*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[2] = ((real_t)(Dummy_396*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[3] = ((real_t)(Dummy_397*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[4] = ((real_t)(Dummy_398*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[5] = ((real_t)(Dummy_399*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[6] = ((real_t)(Dummy_400*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[7] = ((real_t)(Dummy_401*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))));
+             _data_mat[8] = ((real_t)(Dummy_402*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[9] = ((real_t)(Dummy_403*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[10] = ((real_t)(Dummy_404*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[11] = ((real_t)(Dummy_405*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[12] = ((real_t)(Dummy_406*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[13] = ((real_t)(Dummy_407*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[14] = ((real_t)(Dummy_408*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))));
+             _data_mat[15] = ((real_t)(Dummy_409*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[16] = ((real_t)(Dummy_410*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[17] = ((real_t)(Dummy_411*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[18] = ((real_t)(Dummy_412*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[19] = ((real_t)(Dummy_413*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[20] = ((real_t)(Dummy_414*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[21] = ((real_t)(Dummy_415*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))));
+             _data_mat[22] = ((real_t)(Dummy_416*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[23] = ((real_t)(Dummy_417*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[24] = ((real_t)(Dummy_418*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[25] = ((real_t)(Dummy_419*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[26] = ((real_t)(Dummy_420*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[27] = ((real_t)(Dummy_421*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[28] = ((real_t)(Dummy_422*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))));
+             _data_mat[29] = ((real_t)(Dummy_423*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[30] = ((real_t)(Dummy_424*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[31] = ((real_t)(Dummy_425*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[32] = ((real_t)(Dummy_426*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[33] = ((real_t)(Dummy_427*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[34] = ((real_t)(Dummy_428*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[35] = ((real_t)(Dummy_429*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -835,7 +835,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
@@ -854,42 +854,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::BLUE_UP );
          
-             _data_mat[0] = Dummy_492*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0));
-             _data_mat[1] = Dummy_493*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[2] = Dummy_494*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[3] = Dummy_495*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[4] = Dummy_496*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[5] = Dummy_497*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[6] = Dummy_498*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[7] = Dummy_499*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1));
-             _data_mat[8] = Dummy_500*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[9] = Dummy_501*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[10] = Dummy_502*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[11] = Dummy_503*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[12] = Dummy_504*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[13] = Dummy_505*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[14] = Dummy_506*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2));
-             _data_mat[15] = Dummy_507*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[16] = Dummy_508*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[17] = Dummy_509*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[18] = Dummy_510*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[19] = Dummy_511*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[20] = Dummy_512*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[21] = Dummy_513*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3));
-             _data_mat[22] = Dummy_514*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[23] = Dummy_515*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[24] = Dummy_516*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[25] = Dummy_517*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[26] = Dummy_518*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[27] = Dummy_519*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[28] = Dummy_520*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4));
-             _data_mat[29] = Dummy_521*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[30] = Dummy_522*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[31] = Dummy_523*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[32] = Dummy_524*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[33] = Dummy_525*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[34] = Dummy_526*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[35] = Dummy_527*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5));
+             _data_mat[0] = ((real_t)(Dummy_492*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))));
+             _data_mat[1] = ((real_t)(Dummy_493*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[2] = ((real_t)(Dummy_494*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[3] = ((real_t)(Dummy_495*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[4] = ((real_t)(Dummy_496*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[5] = ((real_t)(Dummy_497*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[6] = ((real_t)(Dummy_498*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[7] = ((real_t)(Dummy_499*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))));
+             _data_mat[8] = ((real_t)(Dummy_500*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[9] = ((real_t)(Dummy_501*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[10] = ((real_t)(Dummy_502*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[11] = ((real_t)(Dummy_503*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[12] = ((real_t)(Dummy_504*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[13] = ((real_t)(Dummy_505*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[14] = ((real_t)(Dummy_506*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))));
+             _data_mat[15] = ((real_t)(Dummy_507*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[16] = ((real_t)(Dummy_508*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[17] = ((real_t)(Dummy_509*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[18] = ((real_t)(Dummy_510*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[19] = ((real_t)(Dummy_511*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[20] = ((real_t)(Dummy_512*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[21] = ((real_t)(Dummy_513*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))));
+             _data_mat[22] = ((real_t)(Dummy_514*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[23] = ((real_t)(Dummy_515*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[24] = ((real_t)(Dummy_516*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[25] = ((real_t)(Dummy_517*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[26] = ((real_t)(Dummy_518*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[27] = ((real_t)(Dummy_519*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[28] = ((real_t)(Dummy_520*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))));
+             _data_mat[29] = ((real_t)(Dummy_521*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[30] = ((real_t)(Dummy_522*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[31] = ((real_t)(Dummy_523*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[32] = ((real_t)(Dummy_524*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[33] = ((real_t)(Dummy_525*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[34] = ((real_t)(Dummy_526*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[35] = ((real_t)(Dummy_527*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -901,7 +901,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
@@ -920,42 +920,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::BLUE_DOWN );
          
-             _data_mat[0] = Dummy_590*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0));
-             _data_mat[1] = Dummy_591*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[2] = Dummy_592*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[3] = Dummy_593*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[4] = Dummy_594*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[5] = Dummy_595*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[6] = Dummy_596*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[7] = Dummy_597*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1));
-             _data_mat[8] = Dummy_598*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[9] = Dummy_599*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[10] = Dummy_600*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[11] = Dummy_601*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[12] = Dummy_602*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[13] = Dummy_603*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[14] = Dummy_604*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2));
-             _data_mat[15] = Dummy_605*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[16] = Dummy_606*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[17] = Dummy_607*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[18] = Dummy_608*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[19] = Dummy_609*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[20] = Dummy_610*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[21] = Dummy_611*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3));
-             _data_mat[22] = Dummy_612*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[23] = Dummy_613*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[24] = Dummy_614*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[25] = Dummy_615*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[26] = Dummy_616*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[27] = Dummy_617*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[28] = Dummy_618*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4));
-             _data_mat[29] = Dummy_619*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[30] = Dummy_620*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[31] = Dummy_621*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[32] = Dummy_622*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[33] = Dummy_623*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[34] = Dummy_624*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[35] = Dummy_625*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5));
+             _data_mat[0] = ((real_t)(Dummy_590*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))));
+             _data_mat[1] = ((real_t)(Dummy_591*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[2] = ((real_t)(Dummy_592*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[3] = ((real_t)(Dummy_593*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[4] = ((real_t)(Dummy_594*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[5] = ((real_t)(Dummy_595*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[6] = ((real_t)(Dummy_596*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[7] = ((real_t)(Dummy_597*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))));
+             _data_mat[8] = ((real_t)(Dummy_598*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[9] = ((real_t)(Dummy_599*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[10] = ((real_t)(Dummy_600*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[11] = ((real_t)(Dummy_601*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[12] = ((real_t)(Dummy_602*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[13] = ((real_t)(Dummy_603*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[14] = ((real_t)(Dummy_604*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))));
+             _data_mat[15] = ((real_t)(Dummy_605*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[16] = ((real_t)(Dummy_606*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[17] = ((real_t)(Dummy_607*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[18] = ((real_t)(Dummy_608*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[19] = ((real_t)(Dummy_609*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[20] = ((real_t)(Dummy_610*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[21] = ((real_t)(Dummy_611*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))));
+             _data_mat[22] = ((real_t)(Dummy_612*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[23] = ((real_t)(Dummy_613*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[24] = ((real_t)(Dummy_614*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[25] = ((real_t)(Dummy_615*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[26] = ((real_t)(Dummy_616*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[27] = ((real_t)(Dummy_617*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[28] = ((real_t)(Dummy_618*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))));
+             _data_mat[29] = ((real_t)(Dummy_619*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[30] = ((real_t)(Dummy_620*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[31] = ((real_t)(Dummy_621*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[32] = ((real_t)(Dummy_622*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[33] = ((real_t)(Dummy_623*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[34] = ((real_t)(Dummy_624*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[35] = ((real_t)(Dummy_625*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -967,7 +967,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
@@ -986,42 +986,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::GREEN_UP );
          
-             _data_mat[0] = Dummy_688*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0));
-             _data_mat[1] = Dummy_689*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[2] = Dummy_690*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[3] = Dummy_691*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[4] = Dummy_692*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[5] = Dummy_693*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[6] = Dummy_694*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[7] = Dummy_695*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1));
-             _data_mat[8] = Dummy_696*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[9] = Dummy_697*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[10] = Dummy_698*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[11] = Dummy_699*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[12] = Dummy_700*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[13] = Dummy_701*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[14] = Dummy_702*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2));
-             _data_mat[15] = Dummy_703*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[16] = Dummy_704*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[17] = Dummy_705*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[18] = Dummy_706*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[19] = Dummy_707*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[20] = Dummy_708*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[21] = Dummy_709*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3));
-             _data_mat[22] = Dummy_710*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[23] = Dummy_711*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[24] = Dummy_712*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[25] = Dummy_713*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[26] = Dummy_714*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[27] = Dummy_715*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[28] = Dummy_716*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4));
-             _data_mat[29] = Dummy_717*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[30] = Dummy_718*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[31] = Dummy_719*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[32] = Dummy_720*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[33] = Dummy_721*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[34] = Dummy_722*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[35] = Dummy_723*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5));
+             _data_mat[0] = ((real_t)(Dummy_688*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))));
+             _data_mat[1] = ((real_t)(Dummy_689*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[2] = ((real_t)(Dummy_690*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[3] = ((real_t)(Dummy_691*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[4] = ((real_t)(Dummy_692*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[5] = ((real_t)(Dummy_693*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[6] = ((real_t)(Dummy_694*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[7] = ((real_t)(Dummy_695*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))));
+             _data_mat[8] = ((real_t)(Dummy_696*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[9] = ((real_t)(Dummy_697*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[10] = ((real_t)(Dummy_698*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[11] = ((real_t)(Dummy_699*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[12] = ((real_t)(Dummy_700*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[13] = ((real_t)(Dummy_701*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[14] = ((real_t)(Dummy_702*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))));
+             _data_mat[15] = ((real_t)(Dummy_703*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[16] = ((real_t)(Dummy_704*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[17] = ((real_t)(Dummy_705*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[18] = ((real_t)(Dummy_706*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[19] = ((real_t)(Dummy_707*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[20] = ((real_t)(Dummy_708*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[21] = ((real_t)(Dummy_709*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))));
+             _data_mat[22] = ((real_t)(Dummy_710*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[23] = ((real_t)(Dummy_711*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[24] = ((real_t)(Dummy_712*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[25] = ((real_t)(Dummy_713*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[26] = ((real_t)(Dummy_714*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[27] = ((real_t)(Dummy_715*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[28] = ((real_t)(Dummy_716*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))));
+             _data_mat[29] = ((real_t)(Dummy_717*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[30] = ((real_t)(Dummy_718*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[31] = ((real_t)(Dummy_719*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[32] = ((real_t)(Dummy_720*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[33] = ((real_t)(Dummy_721*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[34] = ((real_t)(Dummy_722*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[35] = ((real_t)(Dummy_723*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1033,7 +1033,7 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]));
@@ -1052,42 +1052,42 @@ void N1E1ElementwiseCurlCurl::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst,
          
              const Eigen::DiagonalMatrix< real_t, 6 > basisTransformation = n1e1::macrocell::basisTransformation( level, cell, {ctr_0, ctr_1, ctr_2}, celldof::CellType::GREEN_DOWN );
          
-             _data_mat[0] = Dummy_786*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0));
-             _data_mat[1] = Dummy_787*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[2] = Dummy_788*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[3] = Dummy_789*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[4] = Dummy_790*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[5] = Dummy_791*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[6] = Dummy_792*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1);
-             _data_mat[7] = Dummy_793*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1));
-             _data_mat[8] = Dummy_794*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[9] = Dummy_795*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[10] = Dummy_796*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[11] = Dummy_797*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[12] = Dummy_798*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2);
-             _data_mat[13] = Dummy_799*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2);
-             _data_mat[14] = Dummy_800*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2));
-             _data_mat[15] = Dummy_801*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[16] = Dummy_802*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[17] = Dummy_803*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[18] = Dummy_804*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3);
-             _data_mat[19] = Dummy_805*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3);
-             _data_mat[20] = Dummy_806*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3);
-             _data_mat[21] = Dummy_807*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3));
-             _data_mat[22] = Dummy_808*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[23] = Dummy_809*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[24] = Dummy_810*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4);
-             _data_mat[25] = Dummy_811*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4);
-             _data_mat[26] = Dummy_812*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4);
-             _data_mat[27] = Dummy_813*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4);
-             _data_mat[28] = Dummy_814*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4));
-             _data_mat[29] = Dummy_815*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[30] = Dummy_816*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5);
-             _data_mat[31] = Dummy_817*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5);
-             _data_mat[32] = Dummy_818*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5);
-             _data_mat[33] = Dummy_819*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5);
-             _data_mat[34] = Dummy_820*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5);
-             _data_mat[35] = Dummy_821*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5));
+             _data_mat[0] = ((real_t)(Dummy_786*(basisTransformation.diagonal()(0)*basisTransformation.diagonal()(0))));
+             _data_mat[1] = ((real_t)(Dummy_787*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[2] = ((real_t)(Dummy_788*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[3] = ((real_t)(Dummy_789*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[4] = ((real_t)(Dummy_790*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[5] = ((real_t)(Dummy_791*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[6] = ((real_t)(Dummy_792*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(1)));
+             _data_mat[7] = ((real_t)(Dummy_793*(basisTransformation.diagonal()(1)*basisTransformation.diagonal()(1))));
+             _data_mat[8] = ((real_t)(Dummy_794*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[9] = ((real_t)(Dummy_795*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[10] = ((real_t)(Dummy_796*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[11] = ((real_t)(Dummy_797*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[12] = ((real_t)(Dummy_798*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(2)));
+             _data_mat[13] = ((real_t)(Dummy_799*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(2)));
+             _data_mat[14] = ((real_t)(Dummy_800*(basisTransformation.diagonal()(2)*basisTransformation.diagonal()(2))));
+             _data_mat[15] = ((real_t)(Dummy_801*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[16] = ((real_t)(Dummy_802*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[17] = ((real_t)(Dummy_803*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[18] = ((real_t)(Dummy_804*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(3)));
+             _data_mat[19] = ((real_t)(Dummy_805*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(3)));
+             _data_mat[20] = ((real_t)(Dummy_806*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(3)));
+             _data_mat[21] = ((real_t)(Dummy_807*(basisTransformation.diagonal()(3)*basisTransformation.diagonal()(3))));
+             _data_mat[22] = ((real_t)(Dummy_808*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[23] = ((real_t)(Dummy_809*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[24] = ((real_t)(Dummy_810*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(4)));
+             _data_mat[25] = ((real_t)(Dummy_811*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(4)));
+             _data_mat[26] = ((real_t)(Dummy_812*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(4)));
+             _data_mat[27] = ((real_t)(Dummy_813*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(4)));
+             _data_mat[28] = ((real_t)(Dummy_814*(basisTransformation.diagonal()(4)*basisTransformation.diagonal()(4))));
+             _data_mat[29] = ((real_t)(Dummy_815*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[30] = ((real_t)(Dummy_816*basisTransformation.diagonal()(0)*basisTransformation.diagonal()(5)));
+             _data_mat[31] = ((real_t)(Dummy_817*basisTransformation.diagonal()(1)*basisTransformation.diagonal()(5)));
+             _data_mat[32] = ((real_t)(Dummy_818*basisTransformation.diagonal()(2)*basisTransformation.diagonal()(5)));
+             _data_mat[33] = ((real_t)(Dummy_819*basisTransformation.diagonal()(3)*basisTransformation.diagonal()(5)));
+             _data_mat[34] = ((real_t)(Dummy_820*basisTransformation.diagonal()(4)*basisTransformation.diagonal()(5)));
+             _data_mat[35] = ((real_t)(Dummy_821*(basisTransformation.diagonal()(5)*basisTransformation.diagonal()(5))));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/diffusion/P1ElementwiseDiffusion.cpp b/operators/diffusion/P1ElementwiseDiffusion.cpp
index 848f4113aaaff451751400ba3c20f7e450ded42a..6cb8edaaff10f7836c33910d09ff70131a2d9b17 100644
--- a/operators/diffusion/P1ElementwiseDiffusion.cpp
+++ b/operators/diffusion/P1ElementwiseDiffusion.cpp
@@ -60,7 +60,7 @@ inline void P1ElementwiseDiffusion::apply(const P1Function<double> &src,
     // However, we must not zero out anything that is not flagged with the
     // specified BCs. Therefore, we first zero out everything that flagged, and
     // then, later, the halos of the highest dim primitives.
-    dst.interpolate(real_c(0), level, flag);
+    dst.interpolate(walberla::numeric_cast<double>(0), level, flag);
   }
 
   if (storage_->hasGlobalCells()) {
@@ -80,7 +80,7 @@ inline void P1ElementwiseDiffusion::apply(const P1Function<double> &src,
         if (!vertexdof::macrocell::isOnCellFace(idx, level).empty()) {
           auto arrayIdx =
               vertexdof::macrocell::index(level, idx.x(), idx.y(), idx.z());
-          _data_dst[arrayIdx] = real_c(0);
+          _data_dst[arrayIdx] = double(0);
         }
       }
 
@@ -88,22 +88,30 @@ inline void P1ElementwiseDiffusion::apply(const P1Function<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       apply_macro_3D(
 
@@ -144,7 +152,7 @@ inline void P1ElementwiseDiffusion::apply(const P1Function<double> &src,
       for (const auto &idx : vertexdof::macroface::Iterator(level)) {
         if (vertexdof::macroface::isVertexOnBoundary(level, idx)) {
           auto arrayIdx = vertexdof::macroface::index(level, idx.x(), idx.y());
-          _data_dst[arrayIdx] = real_c(0);
+          _data_dst[arrayIdx] = double(0);
         }
       }
 
@@ -152,16 +160,18 @@ inline void P1ElementwiseDiffusion::apply(const P1Function<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       apply_macro_2D(
 
@@ -205,22 +215,30 @@ inline void P1ElementwiseDiffusion::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       toMatrix_macro_3D(
 
@@ -246,16 +264,18 @@ inline void P1ElementwiseDiffusion::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       toMatrix_macro_2D(
 
@@ -289,22 +309,30 @@ void P1ElementwiseDiffusion::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-        const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-        const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-        const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-        const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-        const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-        const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)cell.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)cell.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_0comp2 =
+            (double)cell.getCoordinates()[0][2];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)cell.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)cell.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_1comp2 =
+            (double)cell.getCoordinates()[1][2];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)cell.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)cell.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_2comp2 =
+            (double)cell.getCoordinates()[2][2];
+        const double macro_vertex_coord_id_3comp0 =
+            (double)cell.getCoordinates()[3][0];
+        const double macro_vertex_coord_id_3comp1 =
+            (double)cell.getCoordinates()[3][1];
+        const double macro_vertex_coord_id_3comp2 =
+            (double)cell.getCoordinates()[3][2];
 
         computeInverseDiagonalOperatorValues_macro_3D(
 
@@ -339,16 +367,18 @@ void P1ElementwiseDiffusion::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)face.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)face.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)face.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)face.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)face.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)face.getCoordinates()[2][1];
 
         computeInverseDiagonalOperatorValues_macro_2D(
 
diff --git a/operators/diffusion/P1ElementwiseDiffusion.hpp b/operators/diffusion/P1ElementwiseDiffusion.hpp
index d5b6800d7a4b20956c506be9c7a3effd1e02572c..bd44a810e4d304f27c28154d265efab5e7eb06fb 100644
--- a/operators/diffusion/P1ElementwiseDiffusion.hpp
+++ b/operators/diffusion/P1ElementwiseDiffusion.hpp
@@ -26,21 +26,21 @@
 
 #pragma once
 
-#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
-
-#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/communication/Syncing.hpp"
 
-#include "core/DataTypes.h"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
 
-#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/operators/Operator.hpp"
 
 #include "hyteg/p1functionspace/P1Function.hpp"
 
 #include "hyteg/solvers/Smoothables.hpp"
 
-#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
 
-#include "hyteg/operators/Operator.hpp"
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
 
 #include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
 
@@ -115,14 +115,16 @@ private:
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
   ///     23      29       2       0      1              0                 0 3
-  void toMatrix_macro_2D(
-      int64_t *RESTRICT _data_dst, int64_t *RESTRICT _data_src,
-      double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
-      double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1,
-      double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1,
-      std::shared_ptr<SparseMatrixProxy> mat,
-      int64_t micro_edges_per_macro_edge,
-      double micro_edges_per_macro_edge_float) const;
+  void toMatrix_macro_2D(idx_t *RESTRICT _data_dst, idx_t *RESTRICT _data_src,
+                         double macro_vertex_coord_id_0comp0,
+                         double macro_vertex_coord_id_0comp1,
+                         double macro_vertex_coord_id_1comp0,
+                         double macro_vertex_coord_id_1comp1,
+                         double macro_vertex_coord_id_2comp0,
+                         double macro_vertex_coord_id_2comp1,
+                         std::shared_ptr<SparseMatrixProxy> mat,
+                         int64_t micro_edges_per_macro_edge,
+                         double micro_edges_per_macro_edge_float) const;
   /// Kernel type: toMatrix
   /// - quadrature rule: Xiao-Gimbutas | points: 1, degree: 1
   /// - operations per element:
@@ -132,7 +134,7 @@ private:
   /// -------------
   ///     73      84       2       0      1              0                 0 3
   void toMatrix_macro_3D(
-      int64_t *RESTRICT _data_dst, int64_t *RESTRICT _data_src,
+      idx_t *RESTRICT _data_dst, idx_t *RESTRICT _data_src,
       double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
       double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0,
       double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2,
diff --git a/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_2D.cpp b/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_2D.cpp
index 2b7b3d267867ad2f8ce218f5b2f82a1737eebb37..71cf889288d3c42cfb5ef7d6c1c2d076c0667867 100644
--- a/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_2D.cpp
+++ b/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_2D.cpp
@@ -54,7 +54,7 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, int64_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void P1ElementwiseDiffusion::toMatrix_macro_2D( idx_t * RESTRICT  _data_dst, idx_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
        const double tmp_GRAY_0 = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
@@ -136,7 +136,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 3 );
                    std::vector< uint_t > _data_colIdx( 3 );
-                   std::vector< double > _data_mat( 9 );
+                   std::vector< real_t > _data_mat( 9 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
@@ -149,15 +149,15 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = elMat_0_0;
-                   _data_mat[1] = elMat_0_1;
-                   _data_mat[2] = elMat_0_2;
-                   _data_mat[3] = elMat_1_0;
-                   _data_mat[4] = elMat_1_1;
-                   _data_mat[5] = elMat_1_2;
-                   _data_mat[6] = elMat_2_0;
-                   _data_mat[7] = elMat_2_1;
-                   _data_mat[8] = elMat_2_2;
+                   _data_mat[0] = ((real_t)(elMat_0_0));
+                   _data_mat[1] = ((real_t)(elMat_0_1));
+                   _data_mat[2] = ((real_t)(elMat_0_2));
+                   _data_mat[3] = ((real_t)(elMat_1_0));
+                   _data_mat[4] = ((real_t)(elMat_1_1));
+                   _data_mat[5] = ((real_t)(elMat_1_2));
+                   _data_mat[6] = ((real_t)(elMat_2_0));
+                   _data_mat[7] = ((real_t)(elMat_2_1));
+                   _data_mat[8] = ((real_t)(elMat_2_2));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -168,7 +168,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 3 );
                    std::vector< uint_t > _data_colIdx( 3 );
-                   std::vector< double > _data_mat( 9 );
+                   std::vector< real_t > _data_mat( 9 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
@@ -181,15 +181,15 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_1782;
-                   _data_mat[1] = Dummy_1783;
-                   _data_mat[2] = Dummy_1784;
-                   _data_mat[3] = Dummy_1785;
-                   _data_mat[4] = Dummy_1786;
-                   _data_mat[5] = Dummy_1787;
-                   _data_mat[6] = Dummy_1788;
-                   _data_mat[7] = Dummy_1789;
-                   _data_mat[8] = Dummy_1790;
+                   _data_mat[0] = ((real_t)(Dummy_1782));
+                   _data_mat[1] = ((real_t)(Dummy_1783));
+                   _data_mat[2] = ((real_t)(Dummy_1784));
+                   _data_mat[3] = ((real_t)(Dummy_1785));
+                   _data_mat[4] = ((real_t)(Dummy_1786));
+                   _data_mat[5] = ((real_t)(Dummy_1787));
+                   _data_mat[6] = ((real_t)(Dummy_1788));
+                   _data_mat[7] = ((real_t)(Dummy_1789));
+                   _data_mat[8] = ((real_t)(Dummy_1790));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -202,7 +202,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 3 );
                    std::vector< uint_t > _data_colIdx( 3 );
-                   std::vector< double > _data_mat( 9 );
+                   std::vector< real_t > _data_mat( 9 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_1*(micro_edges_per_macro_edge + 2) - ctr_1 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) - 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_1*(micro_edges_per_macro_edge + 2) - ctr_1 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2))]));
@@ -215,15 +215,15 @@ void P1ElementwiseDiffusion::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = elMat_0_0;
-                   _data_mat[1] = elMat_0_1;
-                   _data_mat[2] = elMat_0_2;
-                   _data_mat[3] = elMat_1_0;
-                   _data_mat[4] = elMat_1_1;
-                   _data_mat[5] = elMat_1_2;
-                   _data_mat[6] = elMat_2_0;
-                   _data_mat[7] = elMat_2_1;
-                   _data_mat[8] = elMat_2_2;
+                   _data_mat[0] = ((real_t)(elMat_0_0));
+                   _data_mat[1] = ((real_t)(elMat_0_1));
+                   _data_mat[2] = ((real_t)(elMat_0_2));
+                   _data_mat[3] = ((real_t)(elMat_1_0));
+                   _data_mat[4] = ((real_t)(elMat_1_1));
+                   _data_mat[5] = ((real_t)(elMat_1_2));
+                   _data_mat[6] = ((real_t)(elMat_2_0));
+                   _data_mat[7] = ((real_t)(elMat_2_1));
+                   _data_mat[8] = ((real_t)(elMat_2_2));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_3D.cpp b/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_3D.cpp
index 0b9f8ed04615a30a40ec37a3c4a2a07a56f28123..2ba1e81858762b32b32917da5829d5d72747d5dc 100644
--- a/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_3D.cpp
+++ b/operators/diffusion/noarch/P1ElementwiseDiffusion_toMatrix_macro_3D.cpp
@@ -54,7 +54,7 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, int64_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void P1ElementwiseDiffusion::toMatrix_macro_3D( idx_t * RESTRICT  _data_dst, idx_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
        const double tmp_WHITE_UP_0 = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
@@ -499,7 +499,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -514,22 +514,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = elMat_0_0;
-                   _data_mat[1] = elMat_0_1;
-                   _data_mat[2] = elMat_0_2;
-                   _data_mat[3] = elMat_0_3;
-                   _data_mat[4] = elMat_1_0;
-                   _data_mat[5] = elMat_1_1;
-                   _data_mat[6] = elMat_1_2;
-                   _data_mat[7] = elMat_1_3;
-                   _data_mat[8] = elMat_2_0;
-                   _data_mat[9] = elMat_2_1;
-                   _data_mat[10] = elMat_2_2;
-                   _data_mat[11] = elMat_2_3;
-                   _data_mat[12] = elMat_3_0;
-                   _data_mat[13] = elMat_3_1;
-                   _data_mat[14] = elMat_3_2;
-                   _data_mat[15] = elMat_3_3;
+                   _data_mat[0] = ((real_t)(elMat_0_0));
+                   _data_mat[1] = ((real_t)(elMat_0_1));
+                   _data_mat[2] = ((real_t)(elMat_0_2));
+                   _data_mat[3] = ((real_t)(elMat_0_3));
+                   _data_mat[4] = ((real_t)(elMat_1_0));
+                   _data_mat[5] = ((real_t)(elMat_1_1));
+                   _data_mat[6] = ((real_t)(elMat_1_2));
+                   _data_mat[7] = ((real_t)(elMat_1_3));
+                   _data_mat[8] = ((real_t)(elMat_2_0));
+                   _data_mat[9] = ((real_t)(elMat_2_1));
+                   _data_mat[10] = ((real_t)(elMat_2_2));
+                   _data_mat[11] = ((real_t)(elMat_2_3));
+                   _data_mat[12] = ((real_t)(elMat_3_0));
+                   _data_mat[13] = ((real_t)(elMat_3_1));
+                   _data_mat[14] = ((real_t)(elMat_3_2));
+                   _data_mat[15] = ((real_t)(elMat_3_3));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -540,7 +540,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -555,22 +555,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2006;
-                   _data_mat[1] = Dummy_2007;
-                   _data_mat[2] = Dummy_2008;
-                   _data_mat[3] = Dummy_2009;
-                   _data_mat[4] = Dummy_2010;
-                   _data_mat[5] = Dummy_2011;
-                   _data_mat[6] = Dummy_2012;
-                   _data_mat[7] = Dummy_2013;
-                   _data_mat[8] = Dummy_2014;
-                   _data_mat[9] = Dummy_2015;
-                   _data_mat[10] = Dummy_2016;
-                   _data_mat[11] = Dummy_2017;
-                   _data_mat[12] = Dummy_2018;
-                   _data_mat[13] = Dummy_2019;
-                   _data_mat[14] = Dummy_2020;
-                   _data_mat[15] = Dummy_2021;
+                   _data_mat[0] = ((real_t)(Dummy_2006));
+                   _data_mat[1] = ((real_t)(Dummy_2007));
+                   _data_mat[2] = ((real_t)(Dummy_2008));
+                   _data_mat[3] = ((real_t)(Dummy_2009));
+                   _data_mat[4] = ((real_t)(Dummy_2010));
+                   _data_mat[5] = ((real_t)(Dummy_2011));
+                   _data_mat[6] = ((real_t)(Dummy_2012));
+                   _data_mat[7] = ((real_t)(Dummy_2013));
+                   _data_mat[8] = ((real_t)(Dummy_2014));
+                   _data_mat[9] = ((real_t)(Dummy_2015));
+                   _data_mat[10] = ((real_t)(Dummy_2016));
+                   _data_mat[11] = ((real_t)(Dummy_2017));
+                   _data_mat[12] = ((real_t)(Dummy_2018));
+                   _data_mat[13] = ((real_t)(Dummy_2019));
+                   _data_mat[14] = ((real_t)(Dummy_2020));
+                   _data_mat[15] = ((real_t)(Dummy_2021));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -581,7 +581,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -596,22 +596,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2063;
-                   _data_mat[1] = Dummy_2064;
-                   _data_mat[2] = Dummy_2065;
-                   _data_mat[3] = Dummy_2066;
-                   _data_mat[4] = Dummy_2067;
-                   _data_mat[5] = Dummy_2068;
-                   _data_mat[6] = Dummy_2069;
-                   _data_mat[7] = Dummy_2070;
-                   _data_mat[8] = Dummy_2071;
-                   _data_mat[9] = Dummy_2072;
-                   _data_mat[10] = Dummy_2073;
-                   _data_mat[11] = Dummy_2074;
-                   _data_mat[12] = Dummy_2075;
-                   _data_mat[13] = Dummy_2076;
-                   _data_mat[14] = Dummy_2077;
-                   _data_mat[15] = Dummy_2078;
+                   _data_mat[0] = ((real_t)(Dummy_2063));
+                   _data_mat[1] = ((real_t)(Dummy_2064));
+                   _data_mat[2] = ((real_t)(Dummy_2065));
+                   _data_mat[3] = ((real_t)(Dummy_2066));
+                   _data_mat[4] = ((real_t)(Dummy_2067));
+                   _data_mat[5] = ((real_t)(Dummy_2068));
+                   _data_mat[6] = ((real_t)(Dummy_2069));
+                   _data_mat[7] = ((real_t)(Dummy_2070));
+                   _data_mat[8] = ((real_t)(Dummy_2071));
+                   _data_mat[9] = ((real_t)(Dummy_2072));
+                   _data_mat[10] = ((real_t)(Dummy_2073));
+                   _data_mat[11] = ((real_t)(Dummy_2074));
+                   _data_mat[12] = ((real_t)(Dummy_2075));
+                   _data_mat[13] = ((real_t)(Dummy_2076));
+                   _data_mat[14] = ((real_t)(Dummy_2077));
+                   _data_mat[15] = ((real_t)(Dummy_2078));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -622,7 +622,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]));
@@ -637,22 +637,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2120;
-                   _data_mat[1] = Dummy_2121;
-                   _data_mat[2] = Dummy_2122;
-                   _data_mat[3] = Dummy_2123;
-                   _data_mat[4] = Dummy_2124;
-                   _data_mat[5] = Dummy_2125;
-                   _data_mat[6] = Dummy_2126;
-                   _data_mat[7] = Dummy_2127;
-                   _data_mat[8] = Dummy_2128;
-                   _data_mat[9] = Dummy_2129;
-                   _data_mat[10] = Dummy_2130;
-                   _data_mat[11] = Dummy_2131;
-                   _data_mat[12] = Dummy_2132;
-                   _data_mat[13] = Dummy_2133;
-                   _data_mat[14] = Dummy_2134;
-                   _data_mat[15] = Dummy_2135;
+                   _data_mat[0] = ((real_t)(Dummy_2120));
+                   _data_mat[1] = ((real_t)(Dummy_2121));
+                   _data_mat[2] = ((real_t)(Dummy_2122));
+                   _data_mat[3] = ((real_t)(Dummy_2123));
+                   _data_mat[4] = ((real_t)(Dummy_2124));
+                   _data_mat[5] = ((real_t)(Dummy_2125));
+                   _data_mat[6] = ((real_t)(Dummy_2126));
+                   _data_mat[7] = ((real_t)(Dummy_2127));
+                   _data_mat[8] = ((real_t)(Dummy_2128));
+                   _data_mat[9] = ((real_t)(Dummy_2129));
+                   _data_mat[10] = ((real_t)(Dummy_2130));
+                   _data_mat[11] = ((real_t)(Dummy_2131));
+                   _data_mat[12] = ((real_t)(Dummy_2132));
+                   _data_mat[13] = ((real_t)(Dummy_2133));
+                   _data_mat[14] = ((real_t)(Dummy_2134));
+                   _data_mat[15] = ((real_t)(Dummy_2135));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -663,7 +663,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -678,22 +678,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2177;
-                   _data_mat[1] = Dummy_2178;
-                   _data_mat[2] = Dummy_2179;
-                   _data_mat[3] = Dummy_2180;
-                   _data_mat[4] = Dummy_2181;
-                   _data_mat[5] = Dummy_2182;
-                   _data_mat[6] = Dummy_2183;
-                   _data_mat[7] = Dummy_2184;
-                   _data_mat[8] = Dummy_2185;
-                   _data_mat[9] = Dummy_2186;
-                   _data_mat[10] = Dummy_2187;
-                   _data_mat[11] = Dummy_2188;
-                   _data_mat[12] = Dummy_2189;
-                   _data_mat[13] = Dummy_2190;
-                   _data_mat[14] = Dummy_2191;
-                   _data_mat[15] = Dummy_2192;
+                   _data_mat[0] = ((real_t)(Dummy_2177));
+                   _data_mat[1] = ((real_t)(Dummy_2178));
+                   _data_mat[2] = ((real_t)(Dummy_2179));
+                   _data_mat[3] = ((real_t)(Dummy_2180));
+                   _data_mat[4] = ((real_t)(Dummy_2181));
+                   _data_mat[5] = ((real_t)(Dummy_2182));
+                   _data_mat[6] = ((real_t)(Dummy_2183));
+                   _data_mat[7] = ((real_t)(Dummy_2184));
+                   _data_mat[8] = ((real_t)(Dummy_2185));
+                   _data_mat[9] = ((real_t)(Dummy_2186));
+                   _data_mat[10] = ((real_t)(Dummy_2187));
+                   _data_mat[11] = ((real_t)(Dummy_2188));
+                   _data_mat[12] = ((real_t)(Dummy_2189));
+                   _data_mat[13] = ((real_t)(Dummy_2190));
+                   _data_mat[14] = ((real_t)(Dummy_2191));
+                   _data_mat[15] = ((real_t)(Dummy_2192));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -704,7 +704,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -719,22 +719,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2234;
-                   _data_mat[1] = Dummy_2235;
-                   _data_mat[2] = Dummy_2236;
-                   _data_mat[3] = Dummy_2237;
-                   _data_mat[4] = Dummy_2238;
-                   _data_mat[5] = Dummy_2239;
-                   _data_mat[6] = Dummy_2240;
-                   _data_mat[7] = Dummy_2241;
-                   _data_mat[8] = Dummy_2242;
-                   _data_mat[9] = Dummy_2243;
-                   _data_mat[10] = Dummy_2244;
-                   _data_mat[11] = Dummy_2245;
-                   _data_mat[12] = Dummy_2246;
-                   _data_mat[13] = Dummy_2247;
-                   _data_mat[14] = Dummy_2248;
-                   _data_mat[15] = Dummy_2249;
+                   _data_mat[0] = ((real_t)(Dummy_2234));
+                   _data_mat[1] = ((real_t)(Dummy_2235));
+                   _data_mat[2] = ((real_t)(Dummy_2236));
+                   _data_mat[3] = ((real_t)(Dummy_2237));
+                   _data_mat[4] = ((real_t)(Dummy_2238));
+                   _data_mat[5] = ((real_t)(Dummy_2239));
+                   _data_mat[6] = ((real_t)(Dummy_2240));
+                   _data_mat[7] = ((real_t)(Dummy_2241));
+                   _data_mat[8] = ((real_t)(Dummy_2242));
+                   _data_mat[9] = ((real_t)(Dummy_2243));
+                   _data_mat[10] = ((real_t)(Dummy_2244));
+                   _data_mat[11] = ((real_t)(Dummy_2245));
+                   _data_mat[12] = ((real_t)(Dummy_2246));
+                   _data_mat[13] = ((real_t)(Dummy_2247));
+                   _data_mat[14] = ((real_t)(Dummy_2248));
+                   _data_mat[15] = ((real_t)(Dummy_2249));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -813,7 +813,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 2]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 1]));
@@ -828,22 +828,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = elMat_0_0;
-                   _data_mat[1] = elMat_0_1;
-                   _data_mat[2] = elMat_0_2;
-                   _data_mat[3] = elMat_0_3;
-                   _data_mat[4] = elMat_1_0;
-                   _data_mat[5] = elMat_1_1;
-                   _data_mat[6] = elMat_1_2;
-                   _data_mat[7] = elMat_1_3;
-                   _data_mat[8] = elMat_2_0;
-                   _data_mat[9] = elMat_2_1;
-                   _data_mat[10] = elMat_2_2;
-                   _data_mat[11] = elMat_2_3;
-                   _data_mat[12] = elMat_3_0;
-                   _data_mat[13] = elMat_3_1;
-                   _data_mat[14] = elMat_3_2;
-                   _data_mat[15] = elMat_3_3;
+                   _data_mat[0] = ((real_t)(elMat_0_0));
+                   _data_mat[1] = ((real_t)(elMat_0_1));
+                   _data_mat[2] = ((real_t)(elMat_0_2));
+                   _data_mat[3] = ((real_t)(elMat_0_3));
+                   _data_mat[4] = ((real_t)(elMat_1_0));
+                   _data_mat[5] = ((real_t)(elMat_1_1));
+                   _data_mat[6] = ((real_t)(elMat_1_2));
+                   _data_mat[7] = ((real_t)(elMat_1_3));
+                   _data_mat[8] = ((real_t)(elMat_2_0));
+                   _data_mat[9] = ((real_t)(elMat_2_1));
+                   _data_mat[10] = ((real_t)(elMat_2_2));
+                   _data_mat[11] = ((real_t)(elMat_2_3));
+                   _data_mat[12] = ((real_t)(elMat_3_0));
+                   _data_mat[13] = ((real_t)(elMat_3_1));
+                   _data_mat[14] = ((real_t)(elMat_3_2));
+                   _data_mat[15] = ((real_t)(elMat_3_3));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -925,7 +925,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[-ctr_1 - ctr_2 + micro_edges_per_macro_edge + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 2]));
@@ -940,22 +940,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2291;
-                   _data_mat[1] = Dummy_2292;
-                   _data_mat[2] = Dummy_2293;
-                   _data_mat[3] = Dummy_2294;
-                   _data_mat[4] = Dummy_2295;
-                   _data_mat[5] = Dummy_2296;
-                   _data_mat[6] = Dummy_2297;
-                   _data_mat[7] = Dummy_2298;
-                   _data_mat[8] = Dummy_2299;
-                   _data_mat[9] = Dummy_2300;
-                   _data_mat[10] = Dummy_2301;
-                   _data_mat[11] = Dummy_2302;
-                   _data_mat[12] = Dummy_2303;
-                   _data_mat[13] = Dummy_2304;
-                   _data_mat[14] = Dummy_2305;
-                   _data_mat[15] = Dummy_2306;
+                   _data_mat[0] = ((real_t)(Dummy_2291));
+                   _data_mat[1] = ((real_t)(Dummy_2292));
+                   _data_mat[2] = ((real_t)(Dummy_2293));
+                   _data_mat[3] = ((real_t)(Dummy_2294));
+                   _data_mat[4] = ((real_t)(Dummy_2295));
+                   _data_mat[5] = ((real_t)(Dummy_2296));
+                   _data_mat[6] = ((real_t)(Dummy_2297));
+                   _data_mat[7] = ((real_t)(Dummy_2298));
+                   _data_mat[8] = ((real_t)(Dummy_2299));
+                   _data_mat[9] = ((real_t)(Dummy_2300));
+                   _data_mat[10] = ((real_t)(Dummy_2301));
+                   _data_mat[11] = ((real_t)(Dummy_2302));
+                   _data_mat[12] = ((real_t)(Dummy_2303));
+                   _data_mat[13] = ((real_t)(Dummy_2304));
+                   _data_mat[14] = ((real_t)(Dummy_2305));
+                   _data_mat[15] = ((real_t)(Dummy_2306));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1040,7 +1040,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[-ctr_1 - ctr_2 + micro_edges_per_macro_edge + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 2]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - 2]));
@@ -1055,22 +1055,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2348;
-                   _data_mat[1] = Dummy_2349;
-                   _data_mat[2] = Dummy_2350;
-                   _data_mat[3] = Dummy_2351;
-                   _data_mat[4] = Dummy_2352;
-                   _data_mat[5] = Dummy_2353;
-                   _data_mat[6] = Dummy_2354;
-                   _data_mat[7] = Dummy_2355;
-                   _data_mat[8] = Dummy_2356;
-                   _data_mat[9] = Dummy_2357;
-                   _data_mat[10] = Dummy_2358;
-                   _data_mat[11] = Dummy_2359;
-                   _data_mat[12] = Dummy_2360;
-                   _data_mat[13] = Dummy_2361;
-                   _data_mat[14] = Dummy_2362;
-                   _data_mat[15] = Dummy_2363;
+                   _data_mat[0] = ((real_t)(Dummy_2348));
+                   _data_mat[1] = ((real_t)(Dummy_2349));
+                   _data_mat[2] = ((real_t)(Dummy_2350));
+                   _data_mat[3] = ((real_t)(Dummy_2351));
+                   _data_mat[4] = ((real_t)(Dummy_2352));
+                   _data_mat[5] = ((real_t)(Dummy_2353));
+                   _data_mat[6] = ((real_t)(Dummy_2354));
+                   _data_mat[7] = ((real_t)(Dummy_2355));
+                   _data_mat[8] = ((real_t)(Dummy_2356));
+                   _data_mat[9] = ((real_t)(Dummy_2357));
+                   _data_mat[10] = ((real_t)(Dummy_2358));
+                   _data_mat[11] = ((real_t)(Dummy_2359));
+                   _data_mat[12] = ((real_t)(Dummy_2360));
+                   _data_mat[13] = ((real_t)(Dummy_2361));
+                   _data_mat[14] = ((real_t)(Dummy_2362));
+                   _data_mat[15] = ((real_t)(Dummy_2363));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1152,7 +1152,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[-ctr_1 - ctr_2 + micro_edges_per_macro_edge + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 2]));
@@ -1167,22 +1167,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2405;
-                   _data_mat[1] = Dummy_2406;
-                   _data_mat[2] = Dummy_2407;
-                   _data_mat[3] = Dummy_2408;
-                   _data_mat[4] = Dummy_2409;
-                   _data_mat[5] = Dummy_2410;
-                   _data_mat[6] = Dummy_2411;
-                   _data_mat[7] = Dummy_2412;
-                   _data_mat[8] = Dummy_2413;
-                   _data_mat[9] = Dummy_2414;
-                   _data_mat[10] = Dummy_2415;
-                   _data_mat[11] = Dummy_2416;
-                   _data_mat[12] = Dummy_2417;
-                   _data_mat[13] = Dummy_2418;
-                   _data_mat[14] = Dummy_2419;
-                   _data_mat[15] = Dummy_2420;
+                   _data_mat[0] = ((real_t)(Dummy_2405));
+                   _data_mat[1] = ((real_t)(Dummy_2406));
+                   _data_mat[2] = ((real_t)(Dummy_2407));
+                   _data_mat[3] = ((real_t)(Dummy_2408));
+                   _data_mat[4] = ((real_t)(Dummy_2409));
+                   _data_mat[5] = ((real_t)(Dummy_2410));
+                   _data_mat[6] = ((real_t)(Dummy_2411));
+                   _data_mat[7] = ((real_t)(Dummy_2412));
+                   _data_mat[8] = ((real_t)(Dummy_2413));
+                   _data_mat[9] = ((real_t)(Dummy_2414));
+                   _data_mat[10] = ((real_t)(Dummy_2415));
+                   _data_mat[11] = ((real_t)(Dummy_2416));
+                   _data_mat[12] = ((real_t)(Dummy_2417));
+                   _data_mat[13] = ((real_t)(Dummy_2418));
+                   _data_mat[14] = ((real_t)(Dummy_2419));
+                   _data_mat[15] = ((real_t)(Dummy_2420));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1267,7 +1267,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[-ctr_1 - ctr_2 + micro_edges_per_macro_edge + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 2]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[-ctr_1 - ctr_2 + micro_edges_per_macro_edge + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 1]));
@@ -1282,22 +1282,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = Dummy_2462;
-                   _data_mat[1] = Dummy_2463;
-                   _data_mat[2] = Dummy_2464;
-                   _data_mat[3] = Dummy_2465;
-                   _data_mat[4] = Dummy_2466;
-                   _data_mat[5] = Dummy_2467;
-                   _data_mat[6] = Dummy_2468;
-                   _data_mat[7] = Dummy_2469;
-                   _data_mat[8] = Dummy_2470;
-                   _data_mat[9] = Dummy_2471;
-                   _data_mat[10] = Dummy_2472;
-                   _data_mat[11] = Dummy_2473;
-                   _data_mat[12] = Dummy_2474;
-                   _data_mat[13] = Dummy_2475;
-                   _data_mat[14] = Dummy_2476;
-                   _data_mat[15] = Dummy_2477;
+                   _data_mat[0] = ((real_t)(Dummy_2462));
+                   _data_mat[1] = ((real_t)(Dummy_2463));
+                   _data_mat[2] = ((real_t)(Dummy_2464));
+                   _data_mat[3] = ((real_t)(Dummy_2465));
+                   _data_mat[4] = ((real_t)(Dummy_2466));
+                   _data_mat[5] = ((real_t)(Dummy_2467));
+                   _data_mat[6] = ((real_t)(Dummy_2468));
+                   _data_mat[7] = ((real_t)(Dummy_2469));
+                   _data_mat[8] = ((real_t)(Dummy_2470));
+                   _data_mat[9] = ((real_t)(Dummy_2471));
+                   _data_mat[10] = ((real_t)(Dummy_2472));
+                   _data_mat[11] = ((real_t)(Dummy_2473));
+                   _data_mat[12] = ((real_t)(Dummy_2474));
+                   _data_mat[13] = ((real_t)(Dummy_2475));
+                   _data_mat[14] = ((real_t)(Dummy_2476));
+                   _data_mat[15] = ((real_t)(Dummy_2477));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1310,7 +1310,7 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                    std::vector< uint_t > _data_rowIdx( 4 );
                    std::vector< uint_t > _data_colIdx( 4 );
-                   std::vector< double > _data_mat( 16 );
+                   std::vector< real_t > _data_mat( 16 );
                
                    _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) - 1]));
                    _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ctr_1 - ctr_2 + micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -1325,22 +1325,22 @@ void P1ElementwiseDiffusion::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, i
                
                
                
-                   _data_mat[0] = elMat_0_0;
-                   _data_mat[1] = elMat_0_1;
-                   _data_mat[2] = elMat_0_2;
-                   _data_mat[3] = elMat_0_3;
-                   _data_mat[4] = elMat_1_0;
-                   _data_mat[5] = elMat_1_1;
-                   _data_mat[6] = elMat_1_2;
-                   _data_mat[7] = elMat_1_3;
-                   _data_mat[8] = elMat_2_0;
-                   _data_mat[9] = elMat_2_1;
-                   _data_mat[10] = elMat_2_2;
-                   _data_mat[11] = elMat_2_3;
-                   _data_mat[12] = elMat_3_0;
-                   _data_mat[13] = elMat_3_1;
-                   _data_mat[14] = elMat_3_2;
-                   _data_mat[15] = elMat_3_3;
+                   _data_mat[0] = ((real_t)(elMat_0_0));
+                   _data_mat[1] = ((real_t)(elMat_0_1));
+                   _data_mat[2] = ((real_t)(elMat_0_2));
+                   _data_mat[3] = ((real_t)(elMat_0_3));
+                   _data_mat[4] = ((real_t)(elMat_1_0));
+                   _data_mat[5] = ((real_t)(elMat_1_1));
+                   _data_mat[6] = ((real_t)(elMat_1_2));
+                   _data_mat[7] = ((real_t)(elMat_1_3));
+                   _data_mat[8] = ((real_t)(elMat_2_0));
+                   _data_mat[9] = ((real_t)(elMat_2_1));
+                   _data_mat[10] = ((real_t)(elMat_2_2));
+                   _data_mat[11] = ((real_t)(elMat_2_3));
+                   _data_mat[12] = ((real_t)(elMat_3_0));
+                   _data_mat[13] = ((real_t)(elMat_3_1));
+                   _data_mat[14] = ((real_t)(elMat_3_2));
+                   _data_mat[15] = ((real_t)(elMat_3_3));
                
                
                    mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/div_k_grad/P1ElementwiseDivKGrad.cpp b/operators/div_k_grad/P1ElementwiseDivKGrad.cpp
index 3912f28853160713041867a2cc6a6a1b1c15495b..354d3031b7e263ae425fd4f6388cafe3f06229fa 100644
--- a/operators/div_k_grad/P1ElementwiseDivKGrad.cpp
+++ b/operators/div_k_grad/P1ElementwiseDivKGrad.cpp
@@ -64,7 +64,7 @@ inline void P1ElementwiseDivKGrad::apply(const P1Function<double> &src,
     // However, we must not zero out anything that is not flagged with the
     // specified BCs. Therefore, we first zero out everything that flagged, and
     // then, later, the halos of the highest dim primitives.
-    dst.interpolate(real_c(0), level, flag);
+    dst.interpolate(walberla::numeric_cast<double>(0), level, flag);
   }
 
   if (storage_->hasGlobalCells()) {
@@ -85,7 +85,7 @@ inline void P1ElementwiseDivKGrad::apply(const P1Function<double> &src,
         if (!vertexdof::macrocell::isOnCellFace(idx, level).empty()) {
           auto arrayIdx =
               vertexdof::macrocell::index(level, idx.x(), idx.y(), idx.z());
-          _data_dst[arrayIdx] = real_c(0);
+          _data_dst[arrayIdx] = double(0);
         }
       }
 
@@ -93,22 +93,30 @@ inline void P1ElementwiseDivKGrad::apply(const P1Function<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       apply_macro_3D(
 
@@ -150,7 +158,7 @@ inline void P1ElementwiseDivKGrad::apply(const P1Function<double> &src,
       for (const auto &idx : vertexdof::macroface::Iterator(level)) {
         if (vertexdof::macroface::isVertexOnBoundary(level, idx)) {
           auto arrayIdx = vertexdof::macroface::index(level, idx.x(), idx.y());
-          _data_dst[arrayIdx] = real_c(0);
+          _data_dst[arrayIdx] = double(0);
         }
       }
 
@@ -158,16 +166,18 @@ inline void P1ElementwiseDivKGrad::apply(const P1Function<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       apply_macro_2D(
 
@@ -215,22 +225,30 @@ inline void P1ElementwiseDivKGrad::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       toMatrix_macro_3D(
 
@@ -259,16 +277,18 @@ inline void P1ElementwiseDivKGrad::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       toMatrix_macro_2D(
 
@@ -306,22 +326,30 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-        const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-        const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-        const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-        const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-        const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-        const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)cell.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)cell.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_0comp2 =
+            (double)cell.getCoordinates()[0][2];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)cell.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)cell.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_1comp2 =
+            (double)cell.getCoordinates()[1][2];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)cell.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)cell.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_2comp2 =
+            (double)cell.getCoordinates()[2][2];
+        const double macro_vertex_coord_id_3comp0 =
+            (double)cell.getCoordinates()[3][0];
+        const double macro_vertex_coord_id_3comp1 =
+            (double)cell.getCoordinates()[3][1];
+        const double macro_vertex_coord_id_3comp2 =
+            (double)cell.getCoordinates()[3][2];
 
         computeInverseDiagonalOperatorValues_macro_3D(
 
@@ -359,16 +387,18 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)face.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)face.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)face.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)face.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)face.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)face.getCoordinates()[2][1];
 
         computeInverseDiagonalOperatorValues_macro_2D(
 
diff --git a/operators/div_k_grad/P1ElementwiseDivKGrad.hpp b/operators/div_k_grad/P1ElementwiseDivKGrad.hpp
index 088291a99dde63bb79c9ccd000f1929f91d1ae16..ecfc268337a51a358931011bfe48697405df848e 100644
--- a/operators/div_k_grad/P1ElementwiseDivKGrad.hpp
+++ b/operators/div_k_grad/P1ElementwiseDivKGrad.hpp
@@ -26,21 +26,21 @@
 
 #pragma once
 
-#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
-
-#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/communication/Syncing.hpp"
 
-#include "core/DataTypes.h"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
 
-#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/operators/Operator.hpp"
 
 #include "hyteg/p1functionspace/P1Function.hpp"
 
 #include "hyteg/solvers/Smoothables.hpp"
 
-#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
 
-#include "hyteg/operators/Operator.hpp"
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
 
 #include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
 
@@ -114,8 +114,8 @@ private:
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
   ///     85     112      12       0      1              0                 0 3
-  void toMatrix_macro_2D(int64_t *RESTRICT _data_dst, double *RESTRICT _data_k,
-                         int64_t *RESTRICT _data_src,
+  void toMatrix_macro_2D(idx_t *RESTRICT _data_dst, double *RESTRICT _data_k,
+                         idx_t *RESTRICT _data_src,
                          double macro_vertex_coord_id_0comp0,
                          double macro_vertex_coord_id_0comp1,
                          double macro_vertex_coord_id_1comp0,
@@ -134,8 +134,8 @@ private:
   /// -------------
   ///    302     420      30       0      1              0                 0 3
   void toMatrix_macro_3D(
-      int64_t *RESTRICT _data_dst, double *RESTRICT _data_k,
-      int64_t *RESTRICT _data_src, double macro_vertex_coord_id_0comp0,
+      idx_t *RESTRICT _data_dst, double *RESTRICT _data_k,
+      idx_t *RESTRICT _data_src, double macro_vertex_coord_id_0comp0,
       double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2,
       double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1,
       double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0,
@@ -152,7 +152,7 @@ private:
   ///   unknown_ops
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
-  ///     88     112      12       0      1              0                 0 0
+  ///     70      85      12       0      1              0                 0 0
   void computeInverseDiagonalOperatorValues_macro_2D(
       double *RESTRICT _data_invDiag_, double *RESTRICT _data_k,
       double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
@@ -167,7 +167,7 @@ private:
   ///   unknown_ops
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
-  ///    306     420      30       0      1              0                 0 0
+  ///    234     324      30       0      1              0                 0 0
   void computeInverseDiagonalOperatorValues_macro_3D(
       double *RESTRICT _data_invDiag_, double *RESTRICT _data_k,
       double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
diff --git a/operators/div_k_grad/P2ElementwiseDivKGrad.cpp b/operators/div_k_grad/P2ElementwiseDivKGrad.cpp
index 167e4441292c7a208c7b2bbff707be866d854813..18209df6108514732ca837d0ab9d447245ad56d3 100644
--- a/operators/div_k_grad/P2ElementwiseDivKGrad.cpp
+++ b/operators/div_k_grad/P2ElementwiseDivKGrad.cpp
@@ -64,7 +64,7 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
     // However, we must not zero out anything that is not flagged with the
     // specified BCs. Therefore, we first zero out everything that flagged, and
     // then, later, the halos of the highest dim primitives.
-    dst.interpolate(real_c(0), level, flag);
+    dst.interpolate(walberla::numeric_cast<double>(0), level, flag);
   }
 
   if (storage_->hasGlobalCells()) {
@@ -99,40 +99,40 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
         if (!vertexdof::macrocell::isOnCellFace(idx, level).empty()) {
           auto arrayIdx =
               vertexdof::macrocell::index(level, idx.x(), idx.y(), idx.z());
-          _data_dstVertex[arrayIdx] = real_c(0);
-        }
-      }
-      for (const auto &idx : edgedof::macrocell::Iterator(level)) {
-        for (const auto &orientation :
-             edgedof::allEdgeDoFOrientationsWithoutXYZ) {
-          if (!edgedof::macrocell::isInnerEdgeDoF(level, idx, orientation)) {
-            auto arrayIdx = edgedof::macrocell::index(level, idx.x(), idx.y(),
-                                                      idx.z(), orientation);
-            _data_dstEdge[arrayIdx] = real_c(0);
-          }
+          _data_dstVertex[arrayIdx] = double(0);
         }
       }
+      edgedof::macrocell::setBoundaryToZero(
+          level, cell, dst.getEdgeDoFFunction().getCellDataID());
 
       const auto micro_edges_per_macro_edge =
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       apply_macro_3D(
 
@@ -193,7 +193,7 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
       for (const auto &idx : vertexdof::macroface::Iterator(level)) {
         if (vertexdof::macroface::isVertexOnBoundary(level, idx)) {
           auto arrayIdx = vertexdof::macroface::index(level, idx.x(), idx.y());
-          _data_dstVertex[arrayIdx] = real_c(0);
+          _data_dstVertex[arrayIdx] = walberla::numeric_cast<double>(0);
         }
       }
       for (const auto &idx : edgedof::macroface::Iterator(level)) {
@@ -201,7 +201,7 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
           if (!edgedof::macroface::isInnerEdgeDoF(level, idx, orientation)) {
             auto arrayIdx =
                 edgedof::macroface::index(level, idx.x(), idx.y(), orientation);
-            _data_dstEdge[arrayIdx] = real_c(0);
+            _data_dstEdge[arrayIdx] = walberla::numeric_cast<double>(0);
           }
         }
       }
@@ -210,16 +210,18 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       apply_macro_2D(
 
@@ -228,7 +230,7 @@ inline void P2ElementwiseDivKGrad::apply(const P2Function<double> &src,
           macro_vertex_coord_id_0comp1, macro_vertex_coord_id_1comp0,
           macro_vertex_coord_id_1comp1, macro_vertex_coord_id_2comp0,
           macro_vertex_coord_id_2comp1, micro_edges_per_macro_edge,
-          micro_edges_per_macro_edge_float, micro_edges_per_macro_face);
+          micro_edges_per_macro_edge_float);
     }
 
     // Push result to lower-dimensional primitives
@@ -284,22 +286,30 @@ inline void P2ElementwiseDivKGrad::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-      const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-      const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-      const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-      const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-      const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-      const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)cell.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)cell.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_0comp2 =
+          (double)cell.getCoordinates()[0][2];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)cell.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)cell.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_1comp2 =
+          (double)cell.getCoordinates()[1][2];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)cell.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)cell.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_2comp2 =
+          (double)cell.getCoordinates()[2][2];
+      const double macro_vertex_coord_id_3comp0 =
+          (double)cell.getCoordinates()[3][0];
+      const double macro_vertex_coord_id_3comp1 =
+          (double)cell.getCoordinates()[3][1];
+      const double macro_vertex_coord_id_3comp2 =
+          (double)cell.getCoordinates()[3][2];
 
       toMatrix_macro_3D(
 
@@ -343,16 +353,18 @@ inline void P2ElementwiseDivKGrad::toMatrix(
           (int64_t)levelinfo::num_microedges_per_edge(level);
       const auto micro_edges_per_macro_edge_float =
           (double)levelinfo::num_microedges_per_edge(level);
-      const auto micro_edges_per_macro_face =
-          (int64_t)levelinfo::num_microedges_per_face(level);
-      const auto micro_edges_per_macro_face_float =
-          (double)levelinfo::num_microedges_per_face(level);
-      const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-      const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-      const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-      const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-      const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-      const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+      const double macro_vertex_coord_id_0comp0 =
+          (double)face.getCoordinates()[0][0];
+      const double macro_vertex_coord_id_0comp1 =
+          (double)face.getCoordinates()[0][1];
+      const double macro_vertex_coord_id_1comp0 =
+          (double)face.getCoordinates()[1][0];
+      const double macro_vertex_coord_id_1comp1 =
+          (double)face.getCoordinates()[1][1];
+      const double macro_vertex_coord_id_2comp0 =
+          (double)face.getCoordinates()[2][0];
+      const double macro_vertex_coord_id_2comp1 =
+          (double)face.getCoordinates()[2][1];
 
       toMatrix_macro_2D(
 
@@ -361,7 +373,7 @@ inline void P2ElementwiseDivKGrad::toMatrix(
           macro_vertex_coord_id_0comp1, macro_vertex_coord_id_1comp0,
           macro_vertex_coord_id_1comp1, macro_vertex_coord_id_2comp0,
           macro_vertex_coord_id_2comp1, mat, micro_edges_per_macro_edge,
-          micro_edges_per_macro_edge_float, micro_edges_per_macro_face);
+          micro_edges_per_macro_edge_float);
     }
   }
 }
@@ -400,22 +412,30 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = cell.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = cell.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_0comp2 = cell.getCoordinates()[0][2];
-        const double macro_vertex_coord_id_1comp0 = cell.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = cell.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_1comp2 = cell.getCoordinates()[1][2];
-        const double macro_vertex_coord_id_2comp0 = cell.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = cell.getCoordinates()[2][1];
-        const double macro_vertex_coord_id_2comp2 = cell.getCoordinates()[2][2];
-        const double macro_vertex_coord_id_3comp0 = cell.getCoordinates()[3][0];
-        const double macro_vertex_coord_id_3comp1 = cell.getCoordinates()[3][1];
-        const double macro_vertex_coord_id_3comp2 = cell.getCoordinates()[3][2];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)cell.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)cell.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_0comp2 =
+            (double)cell.getCoordinates()[0][2];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)cell.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)cell.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_1comp2 =
+            (double)cell.getCoordinates()[1][2];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)cell.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)cell.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_2comp2 =
+            (double)cell.getCoordinates()[2][2];
+        const double macro_vertex_coord_id_3comp0 =
+            (double)cell.getCoordinates()[3][0];
+        const double macro_vertex_coord_id_3comp1 =
+            (double)cell.getCoordinates()[3][1];
+        const double macro_vertex_coord_id_3comp2 =
+            (double)cell.getCoordinates()[3][2];
 
         computeInverseDiagonalOperatorValues_macro_3D(
 
@@ -468,16 +488,18 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues() {
             (int64_t)levelinfo::num_microedges_per_edge(level);
         const auto micro_edges_per_macro_edge_float =
             (double)levelinfo::num_microedges_per_edge(level);
-        const auto micro_edges_per_macro_face =
-            (int64_t)levelinfo::num_microedges_per_face(level);
-        const auto micro_edges_per_macro_face_float =
-            (double)levelinfo::num_microedges_per_face(level);
-        const double macro_vertex_coord_id_0comp0 = face.getCoordinates()[0][0];
-        const double macro_vertex_coord_id_0comp1 = face.getCoordinates()[0][1];
-        const double macro_vertex_coord_id_1comp0 = face.getCoordinates()[1][0];
-        const double macro_vertex_coord_id_1comp1 = face.getCoordinates()[1][1];
-        const double macro_vertex_coord_id_2comp0 = face.getCoordinates()[2][0];
-        const double macro_vertex_coord_id_2comp1 = face.getCoordinates()[2][1];
+        const double macro_vertex_coord_id_0comp0 =
+            (double)face.getCoordinates()[0][0];
+        const double macro_vertex_coord_id_0comp1 =
+            (double)face.getCoordinates()[0][1];
+        const double macro_vertex_coord_id_1comp0 =
+            (double)face.getCoordinates()[1][0];
+        const double macro_vertex_coord_id_1comp1 =
+            (double)face.getCoordinates()[1][1];
+        const double macro_vertex_coord_id_2comp0 =
+            (double)face.getCoordinates()[2][0];
+        const double macro_vertex_coord_id_2comp1 =
+            (double)face.getCoordinates()[2][1];
 
         computeInverseDiagonalOperatorValues_macro_2D(
 
@@ -486,7 +508,7 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues() {
             macro_vertex_coord_id_0comp1, macro_vertex_coord_id_1comp0,
             macro_vertex_coord_id_1comp1, macro_vertex_coord_id_2comp0,
             macro_vertex_coord_id_2comp1, micro_edges_per_macro_edge,
-            micro_edges_per_macro_edge_float, micro_edges_per_macro_face);
+            micro_edges_per_macro_edge_float);
       }
 
       // Push result to lower-dimensional primitives
diff --git a/operators/div_k_grad/P2ElementwiseDivKGrad.hpp b/operators/div_k_grad/P2ElementwiseDivKGrad.hpp
index 1ec3215e464e17990643e900302756994afc2811..523a6a01384206fbeb506b8d26a58052147a647d 100644
--- a/operators/div_k_grad/P2ElementwiseDivKGrad.hpp
+++ b/operators/div_k_grad/P2ElementwiseDivKGrad.hpp
@@ -26,21 +26,21 @@
 
 #pragma once
 
-#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
-
-#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/communication/Syncing.hpp"
 
-#include "core/DataTypes.h"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
 
-#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/p2functionspace/P2Function.hpp"
 
-#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/operators/Operator.hpp"
 
 #include "hyteg/solvers/Smoothables.hpp"
 
-#include "hyteg/p2functionspace/P2Function.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
 
-#include "hyteg/operators/Operator.hpp"
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
 
 #include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
 
@@ -89,8 +89,7 @@ private:
       double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1,
       double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1,
       int64_t micro_edges_per_macro_edge,
-      double micro_edges_per_macro_edge_float,
-      int64_t micro_edges_per_macro_face) const;
+      double micro_edges_per_macro_edge_float) const;
   /// Kernel type: apply
   /// - quadrature rule: Xiao-Gimbutas | points: 4, degree: 2
   /// - operations per element:
@@ -120,16 +119,15 @@ private:
   /// -------------
   ///    271     397      12       0      1              0                 0 3
   void toMatrix_macro_2D(
-      int64_t *RESTRICT _data_dstEdge, int64_t *RESTRICT _data_dstVertex,
+      idx_t *RESTRICT _data_dstEdge, idx_t *RESTRICT _data_dstVertex,
       double *RESTRICT _data_kEdge, double *RESTRICT _data_kVertex,
-      int64_t *RESTRICT _data_srcEdge, int64_t *RESTRICT _data_srcVertex,
+      idx_t *RESTRICT _data_srcEdge, idx_t *RESTRICT _data_srcVertex,
       double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
       double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1,
       double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1,
       std::shared_ptr<SparseMatrixProxy> mat,
       int64_t micro_edges_per_macro_edge,
-      double micro_edges_per_macro_edge_float,
-      int64_t micro_edges_per_macro_face) const;
+      double micro_edges_per_macro_edge_float) const;
   /// Kernel type: toMatrix
   /// - quadrature rule: Xiao-Gimbutas | points: 4, degree: 2
   /// - operations per element:
@@ -139,9 +137,9 @@ private:
   /// -------------
   ///   1214    1636      30       0      1              0                 0 3
   void toMatrix_macro_3D(
-      int64_t *RESTRICT _data_dstEdge, int64_t *RESTRICT _data_dstVertex,
+      idx_t *RESTRICT _data_dstEdge, idx_t *RESTRICT _data_dstVertex,
       double *RESTRICT _data_kEdge, double *RESTRICT _data_kVertex,
-      int64_t *RESTRICT _data_srcEdge, int64_t *RESTRICT _data_srcVertex,
+      idx_t *RESTRICT _data_srcEdge, idx_t *RESTRICT _data_srcVertex,
       double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1,
       double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0,
       double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2,
@@ -158,7 +156,7 @@ private:
   ///   unknown_ops
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
-  ///    277     397      12       0      1              0                 0 0
+  ///    187     238      12       0      1              0                 0 0
   void computeInverseDiagonalOperatorValues_macro_2D(
       double *RESTRICT _data_invDiag_Edge,
       double *RESTRICT _data_invDiag_Vertex, double *RESTRICT _data_kEdge,
@@ -166,8 +164,7 @@ private:
       double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0,
       double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0,
       double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge,
-      double micro_edges_per_macro_edge_float,
-      int64_t micro_edges_per_macro_face) const;
+      double micro_edges_per_macro_edge_float) const;
   /// Kernel type: computeInverseDiagonalOperatorValues
   /// - quadrature rule: Xiao-Gimbutas | points: 4, degree: 2
   /// - operations per element:
@@ -175,7 +172,7 @@ private:
   ///   unknown_ops
   /// ------  ------  ------  ------  -----  -------------  ----------------
   /// -------------
-  ///   1224    1636      30       0      1              0                 0 0
+  ///    672     844      30       0      1              0                 0 0
   void computeInverseDiagonalOperatorValues_macro_3D(
       double *RESTRICT _data_invDiag_Edge,
       double *RESTRICT _data_invDiag_Vertex, double *RESTRICT _data_kEdge,
diff --git a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_2D.cpp b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_2D.cpp
index 28368ba378817106178d15c9d26930627fad32db..0f991e618764aab38b0d51a1b14684ce19a8d338 100644
--- a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_2D.cpp
+++ b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_2D.cpp
@@ -57,11 +57,11 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double * RESTRICT  _data_k, double * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -105,9 +105,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_0 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -150,9 +150,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
                 const double src_dof_0 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
                 const double src_dof_1 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -198,9 +198,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_0 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -243,9 +243,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
                 const double src_dof_0 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
diff --git a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_3D.cpp b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_3D.cpp
index d6853ade82f34374f53e76092ae92dca751fe312..d4ae1552659ec6a07be8f344359bebf4aa2253a9 100644
--- a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_3D.cpp
+++ b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_apply_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double * RESTRICT  _data_k, double * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -279,10 +279,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -348,10 +348,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -421,10 +421,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -490,10 +490,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -563,10 +563,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -632,10 +632,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -705,10 +705,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -774,10 +774,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -847,10 +847,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -916,10 +916,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -989,10 +989,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -1058,10 +1058,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
                 const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
diff --git a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
index 2199cf082d34d88ece52738beedaa5e62cd59e12..4cb010f5f3a6e7ce8e586ccc3e15a7fe72ff90dc 100644
--- a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
+++ b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
@@ -57,11 +57,11 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_, double * RESTRICT  _data_k, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,8 +78,6 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double tmp_q_0 = -jac_affine_inv_0_0 - jac_affine_inv_1_0;
-       const double tmp_q_4 = -jac_affine_inv_0_1 - jac_affine_inv_1_1;
        const double Dummy_3697 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
        const double Dummy_3698 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
        const double Dummy_3699 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
@@ -95,46 +93,28 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double Dummy_3709 = -Dummy_3705*1.0 / (Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
        const double Dummy_3710 = Dummy_3703*1.0 / (Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
        const double Dummy_3711 = fabs(Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
-       const double Dummy_3712 = -Dummy_3707 - Dummy_3709;
-       const double Dummy_3713 = -Dummy_3708 - Dummy_3710;
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 3; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const double tmp_q_7 = abs_det_jac_affine*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(tmp_q_4,tmp_q_4,tmp_q_4,tmp_q_4))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(tmp_q_4,tmp_q_4,tmp_q_4,tmp_q_4))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(tmp_q_4,tmp_q_4,tmp_q_4,tmp_q_4))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -144,39 +124,23 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
                 double q_acc_2_2 = 0.0;
                 for (int64_t q = 0; q < 3; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
-                   const double tmp_q_2 = jac_affine_inv_0_0*tmp_q_1;
-                   const double tmp_q_3 = jac_affine_inv_1_0*tmp_q_1;
-                   const double tmp_q_5 = jac_affine_inv_0_1*tmp_q_1;
-                   const double tmp_q_6 = jac_affine_inv_1_1*tmp_q_1;
-                   const double tmp_q_7 = abs_det_jac_affine*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_7*(tmp_q_0*(-tmp_q_2 - tmp_q_3) + tmp_q_4*(-tmp_q_5 - tmp_q_6));
-                   const double res_tmp_0_1 = tmp_q_7*(tmp_q_0*tmp_q_2 + tmp_q_4*tmp_q_5);
-                   const double res_tmp_0_2 = tmp_q_7*(tmp_q_0*tmp_q_3 + tmp_q_4*tmp_q_6);
-                   const double res_tmp_1_1 = tmp_q_7*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_1 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_7*(jac_affine_inv_1_0*tmp_q_2 + jac_affine_inv_1_1*tmp_q_5);
-                   const double res_tmp_2_2 = tmp_q_7*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_1 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
+                   const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-jac_affine_inv_0_0 - jac_affine_inv_1_0)*(-jac_affine_inv_0_0*tmp_q_0 - jac_affine_inv_1_0*tmp_q_0) + (-jac_affine_inv_0_1 - jac_affine_inv_1_1)*(-jac_affine_inv_0_1*tmp_q_0 - jac_affine_inv_1_1*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_0 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_0 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -189,39 +153,23 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 3; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709));
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710));
-                   const double tmp_q_7 = Dummy_3711*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3712,Dummy_3712,Dummy_3712,Dummy_3712)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3713,Dummy_3713,Dummy_3713,Dummy_3713))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3712,Dummy_3712,Dummy_3712,Dummy_3712)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(Dummy_3713,Dummy_3713,Dummy_3713,Dummy_3713))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3712,Dummy_3712,Dummy_3712,Dummy_3712)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3713,Dummy_3713,Dummy_3713,Dummy_3713))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707),_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708),_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708)))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709),_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710),_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710)))),_mm256_set_pd(tmp_q_7,tmp_q_7,tmp_q_7,tmp_q_7));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const double tmp_q_1 = Dummy_3711*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709))),_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709)))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710))),_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707),_mm256_set_pd(Dummy_3707,Dummy_3707,Dummy_3707,Dummy_3707))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708),_mm256_set_pd(Dummy_3708,Dummy_3708,Dummy_3708,Dummy_3708)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709),_mm256_set_pd(Dummy_3709,Dummy_3709,Dummy_3709,Dummy_3709))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710),_mm256_set_pd(Dummy_3710,Dummy_3710,Dummy_3710,Dummy_3710)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -231,39 +179,23 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
                 double q_acc_2_2 = 0.0;
                 for (int64_t q = 0; q < 3; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
-                   const double tmp_q_2 = Dummy_3707*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3709*tmp_q_1;
-                   const double tmp_q_5 = Dummy_3708*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3710*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3711*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_7*(Dummy_3712*(-tmp_q_2 - tmp_q_3) + Dummy_3713*(-tmp_q_5 - tmp_q_6));
-                   const double res_tmp_0_1 = tmp_q_7*(Dummy_3712*tmp_q_2 + Dummy_3713*tmp_q_5);
-                   const double res_tmp_0_2 = tmp_q_7*(Dummy_3712*tmp_q_3 + Dummy_3713*tmp_q_6);
-                   const double res_tmp_1_1 = tmp_q_7*((Dummy_3707*Dummy_3707)*tmp_q_1 + (Dummy_3708*Dummy_3708)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_7*(Dummy_3709*tmp_q_2 + Dummy_3710*tmp_q_5);
-                   const double res_tmp_2_2 = tmp_q_7*((Dummy_3709*Dummy_3709)*tmp_q_1 + (Dummy_3710*Dummy_3710)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
+                   const double tmp_q_1 = Dummy_3711*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3707 - Dummy_3709)*(-Dummy_3707*tmp_q_0 - Dummy_3709*tmp_q_0) + (-Dummy_3708 - Dummy_3710)*(-Dummy_3708*tmp_q_0 - Dummy_3710*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3707*Dummy_3707)*tmp_q_0 + (Dummy_3708*Dummy_3708)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3709*Dummy_3709)*tmp_q_0 + (Dummy_3710*Dummy_3710)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
index 5848bab82376d2cb09386bf2c7832a602dadb548..6ffe77c6dbc4f21c5cbf3b01bff9ab8e3cc0e2f6 100644
--- a/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
+++ b/operators/div_k_grad/avx/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( double * RESTRICT  _data_invDiag_, double * RESTRICT  _data_k, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,239 +96,188 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double tmp_q_0 = -jac_affine_inv_0_0 - jac_affine_inv_1_0 - jac_affine_inv_2_0;
-       const double tmp_q_5 = -jac_affine_inv_0_1 - jac_affine_inv_1_1 - jac_affine_inv_2_1;
-       const double tmp_q_9 = -jac_affine_inv_0_2 - jac_affine_inv_1_2 - jac_affine_inv_2_2;
-       const double Dummy_3822 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3823 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3824 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3825 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3826 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3827 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3828 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3829 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3830 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3831 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3832 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3833 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3834 = -Dummy_3822 + Dummy_3825;
-       const double Dummy_3835 = -Dummy_3822 + Dummy_3828;
-       const double Dummy_3836 = -Dummy_3822 + Dummy_3831;
-       const double Dummy_3837 = -Dummy_3823 + Dummy_3826;
-       const double Dummy_3838 = -Dummy_3823 + Dummy_3829;
-       const double Dummy_3839 = -Dummy_3823 + Dummy_3832;
-       const double Dummy_3840 = -Dummy_3824 + Dummy_3827;
-       const double Dummy_3841 = -Dummy_3824 + Dummy_3830;
-       const double Dummy_3842 = -Dummy_3824 + Dummy_3833;
-       const double Dummy_3843 = (Dummy_3838*Dummy_3842 - Dummy_3839*Dummy_3841)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3844 = (-Dummy_3835*Dummy_3842 + Dummy_3836*Dummy_3841)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3845 = (Dummy_3835*Dummy_3839 - Dummy_3836*Dummy_3838)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3846 = (-Dummy_3837*Dummy_3842 + Dummy_3839*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3847 = (Dummy_3834*Dummy_3842 - Dummy_3836*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3848 = (-Dummy_3834*Dummy_3839 + Dummy_3836*Dummy_3837)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3849 = (Dummy_3837*Dummy_3841 - Dummy_3838*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3850 = (-Dummy_3834*Dummy_3841 + Dummy_3835*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3851 = (Dummy_3834*Dummy_3838 - Dummy_3835*Dummy_3837)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3852 = fabs(Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3853 = -Dummy_3843 - Dummy_3846 - Dummy_3849;
-       const double Dummy_3854 = -Dummy_3844 - Dummy_3847 - Dummy_3850;
-       const double Dummy_3855 = -Dummy_3845 - Dummy_3848 - Dummy_3851;
-       const double Dummy_3856 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_3857 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_3858 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_3859 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3860 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3861 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3862 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3863 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3864 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3865 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3866 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3867 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3868 = -Dummy_3856 + Dummy_3859;
-       const double Dummy_3869 = -Dummy_3856 + Dummy_3862;
-       const double Dummy_3870 = -Dummy_3856 + Dummy_3865;
-       const double Dummy_3871 = -Dummy_3857 + Dummy_3860;
-       const double Dummy_3872 = -Dummy_3857 + Dummy_3863;
-       const double Dummy_3873 = -Dummy_3857 + Dummy_3866;
-       const double Dummy_3874 = -Dummy_3858 + Dummy_3861;
-       const double Dummy_3875 = -Dummy_3858 + Dummy_3864;
-       const double Dummy_3876 = -Dummy_3858 + Dummy_3867;
-       const double Dummy_3877 = (Dummy_3872*Dummy_3876 - Dummy_3873*Dummy_3875)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3878 = (-Dummy_3869*Dummy_3876 + Dummy_3870*Dummy_3875)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3879 = (Dummy_3869*Dummy_3873 - Dummy_3870*Dummy_3872)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3880 = (-Dummy_3871*Dummy_3876 + Dummy_3873*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3881 = (Dummy_3868*Dummy_3876 - Dummy_3870*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3882 = (-Dummy_3868*Dummy_3873 + Dummy_3870*Dummy_3871)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3883 = (Dummy_3871*Dummy_3875 - Dummy_3872*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3884 = (-Dummy_3868*Dummy_3875 + Dummy_3869*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3885 = (Dummy_3868*Dummy_3872 - Dummy_3869*Dummy_3871)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3886 = fabs(Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3887 = -Dummy_3877 - Dummy_3880 - Dummy_3883;
-       const double Dummy_3888 = -Dummy_3878 - Dummy_3881 - Dummy_3884;
-       const double Dummy_3889 = -Dummy_3879 - Dummy_3882 - Dummy_3885;
-       const double Dummy_3890 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3891 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3892 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3893 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3894 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3895 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3896 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3897 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3898 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3899 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3900 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3901 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3902 = -Dummy_3890 + Dummy_3893;
-       const double Dummy_3903 = -Dummy_3890 + Dummy_3896;
-       const double Dummy_3904 = -Dummy_3890 + Dummy_3899;
-       const double Dummy_3905 = -Dummy_3891 + Dummy_3894;
-       const double Dummy_3906 = -Dummy_3891 + Dummy_3897;
-       const double Dummy_3907 = -Dummy_3891 + Dummy_3900;
-       const double Dummy_3908 = -Dummy_3892 + Dummy_3895;
-       const double Dummy_3909 = -Dummy_3892 + Dummy_3898;
-       const double Dummy_3910 = -Dummy_3892 + Dummy_3901;
-       const double Dummy_3911 = (Dummy_3906*Dummy_3910 - Dummy_3907*Dummy_3909)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3912 = (-Dummy_3903*Dummy_3910 + Dummy_3904*Dummy_3909)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3913 = (Dummy_3903*Dummy_3907 - Dummy_3904*Dummy_3906)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3914 = (-Dummy_3905*Dummy_3910 + Dummy_3907*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3915 = (Dummy_3902*Dummy_3910 - Dummy_3904*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3916 = (-Dummy_3902*Dummy_3907 + Dummy_3904*Dummy_3905)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3917 = (Dummy_3905*Dummy_3909 - Dummy_3906*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3918 = (-Dummy_3902*Dummy_3909 + Dummy_3903*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3919 = (Dummy_3902*Dummy_3906 - Dummy_3903*Dummy_3905)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3920 = fabs(Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3921 = -Dummy_3911 - Dummy_3914 - Dummy_3917;
-       const double Dummy_3922 = -Dummy_3912 - Dummy_3915 - Dummy_3918;
-       const double Dummy_3923 = -Dummy_3913 - Dummy_3916 - Dummy_3919;
-       const double Dummy_3924 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_3925 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_3926 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_3927 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3928 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3929 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3930 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3931 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3932 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3933 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3934 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3935 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3936 = -Dummy_3924 + Dummy_3927;
-       const double Dummy_3937 = -Dummy_3924 + Dummy_3930;
-       const double Dummy_3938 = -Dummy_3924 + Dummy_3933;
-       const double Dummy_3939 = -Dummy_3925 + Dummy_3928;
-       const double Dummy_3940 = -Dummy_3925 + Dummy_3931;
-       const double Dummy_3941 = -Dummy_3925 + Dummy_3934;
-       const double Dummy_3942 = -Dummy_3926 + Dummy_3929;
-       const double Dummy_3943 = -Dummy_3926 + Dummy_3932;
-       const double Dummy_3944 = -Dummy_3926 + Dummy_3935;
-       const double Dummy_3945 = (Dummy_3940*Dummy_3944 - Dummy_3941*Dummy_3943)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3946 = (-Dummy_3937*Dummy_3944 + Dummy_3938*Dummy_3943)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3947 = (Dummy_3937*Dummy_3941 - Dummy_3938*Dummy_3940)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3948 = (-Dummy_3939*Dummy_3944 + Dummy_3941*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3949 = (Dummy_3936*Dummy_3944 - Dummy_3938*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3950 = (-Dummy_3936*Dummy_3941 + Dummy_3938*Dummy_3939)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3951 = (Dummy_3939*Dummy_3943 - Dummy_3940*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3952 = (-Dummy_3936*Dummy_3943 + Dummy_3937*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3953 = (Dummy_3936*Dummy_3940 - Dummy_3937*Dummy_3939)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3954 = fabs(Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3955 = -Dummy_3945 - Dummy_3948 - Dummy_3951;
-       const double Dummy_3956 = -Dummy_3946 - Dummy_3949 - Dummy_3952;
-       const double Dummy_3957 = -Dummy_3947 - Dummy_3950 - Dummy_3953;
-       const double Dummy_3958 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3959 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3960 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3961 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3962 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3963 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3964 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3965 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3966 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3967 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3968 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3969 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3970 = -Dummy_3958 + Dummy_3961;
-       const double Dummy_3971 = -Dummy_3958 + Dummy_3964;
-       const double Dummy_3972 = -Dummy_3958 + Dummy_3967;
-       const double Dummy_3973 = -Dummy_3959 + Dummy_3962;
-       const double Dummy_3974 = -Dummy_3959 + Dummy_3965;
-       const double Dummy_3975 = -Dummy_3959 + Dummy_3968;
-       const double Dummy_3976 = -Dummy_3960 + Dummy_3963;
-       const double Dummy_3977 = -Dummy_3960 + Dummy_3966;
-       const double Dummy_3978 = -Dummy_3960 + Dummy_3969;
-       const double Dummy_3979 = (Dummy_3974*Dummy_3978 - Dummy_3975*Dummy_3977)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3980 = (-Dummy_3971*Dummy_3978 + Dummy_3972*Dummy_3977)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3981 = (Dummy_3971*Dummy_3975 - Dummy_3972*Dummy_3974)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3982 = (-Dummy_3973*Dummy_3978 + Dummy_3975*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3983 = (Dummy_3970*Dummy_3978 - Dummy_3972*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3984 = (-Dummy_3970*Dummy_3975 + Dummy_3972*Dummy_3973)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3985 = (Dummy_3973*Dummy_3977 - Dummy_3974*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3986 = (-Dummy_3970*Dummy_3977 + Dummy_3971*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3987 = (Dummy_3970*Dummy_3974 - Dummy_3971*Dummy_3973)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3988 = fabs(Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3989 = -Dummy_3979 - Dummy_3982 - Dummy_3985;
-       const double Dummy_3990 = -Dummy_3980 - Dummy_3983 - Dummy_3986;
-       const double Dummy_3991 = -Dummy_3981 - Dummy_3984 - Dummy_3987;
+       const double Dummy_3820 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3821 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3822 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3823 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3824 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3825 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3826 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3827 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3828 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3829 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3830 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3831 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3832 = -Dummy_3820 + Dummy_3823;
+       const double Dummy_3833 = -Dummy_3820 + Dummy_3826;
+       const double Dummy_3834 = -Dummy_3820 + Dummy_3829;
+       const double Dummy_3835 = -Dummy_3821 + Dummy_3824;
+       const double Dummy_3836 = -Dummy_3821 + Dummy_3827;
+       const double Dummy_3837 = -Dummy_3821 + Dummy_3830;
+       const double Dummy_3838 = -Dummy_3822 + Dummy_3825;
+       const double Dummy_3839 = -Dummy_3822 + Dummy_3828;
+       const double Dummy_3840 = -Dummy_3822 + Dummy_3831;
+       const double Dummy_3841 = (Dummy_3836*Dummy_3840 - Dummy_3837*Dummy_3839)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3842 = (-Dummy_3833*Dummy_3840 + Dummy_3834*Dummy_3839)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3843 = (Dummy_3833*Dummy_3837 - Dummy_3834*Dummy_3836)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3844 = (-Dummy_3835*Dummy_3840 + Dummy_3837*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3845 = (Dummy_3832*Dummy_3840 - Dummy_3834*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3846 = (-Dummy_3832*Dummy_3837 + Dummy_3834*Dummy_3835)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3847 = (Dummy_3835*Dummy_3839 - Dummy_3836*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3848 = (-Dummy_3832*Dummy_3839 + Dummy_3833*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3849 = (Dummy_3832*Dummy_3836 - Dummy_3833*Dummy_3835)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3850 = fabs(Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3851 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_3852 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_3853 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_3854 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3855 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3856 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3857 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3858 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3859 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3860 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3861 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3862 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3863 = -Dummy_3851 + Dummy_3854;
+       const double Dummy_3864 = -Dummy_3851 + Dummy_3857;
+       const double Dummy_3865 = -Dummy_3851 + Dummy_3860;
+       const double Dummy_3866 = -Dummy_3852 + Dummy_3855;
+       const double Dummy_3867 = -Dummy_3852 + Dummy_3858;
+       const double Dummy_3868 = -Dummy_3852 + Dummy_3861;
+       const double Dummy_3869 = -Dummy_3853 + Dummy_3856;
+       const double Dummy_3870 = -Dummy_3853 + Dummy_3859;
+       const double Dummy_3871 = -Dummy_3853 + Dummy_3862;
+       const double Dummy_3872 = (Dummy_3867*Dummy_3871 - Dummy_3868*Dummy_3870)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3873 = (-Dummy_3864*Dummy_3871 + Dummy_3865*Dummy_3870)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3874 = (Dummy_3864*Dummy_3868 - Dummy_3865*Dummy_3867)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3875 = (-Dummy_3866*Dummy_3871 + Dummy_3868*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3876 = (Dummy_3863*Dummy_3871 - Dummy_3865*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3877 = (-Dummy_3863*Dummy_3868 + Dummy_3865*Dummy_3866)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3878 = (Dummy_3866*Dummy_3870 - Dummy_3867*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3879 = (-Dummy_3863*Dummy_3870 + Dummy_3864*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3880 = (Dummy_3863*Dummy_3867 - Dummy_3864*Dummy_3866)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3881 = fabs(Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3882 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3883 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3884 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3885 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3886 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3887 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3888 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3889 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3890 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3891 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3892 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3893 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3894 = -Dummy_3882 + Dummy_3885;
+       const double Dummy_3895 = -Dummy_3882 + Dummy_3888;
+       const double Dummy_3896 = -Dummy_3882 + Dummy_3891;
+       const double Dummy_3897 = -Dummy_3883 + Dummy_3886;
+       const double Dummy_3898 = -Dummy_3883 + Dummy_3889;
+       const double Dummy_3899 = -Dummy_3883 + Dummy_3892;
+       const double Dummy_3900 = -Dummy_3884 + Dummy_3887;
+       const double Dummy_3901 = -Dummy_3884 + Dummy_3890;
+       const double Dummy_3902 = -Dummy_3884 + Dummy_3893;
+       const double Dummy_3903 = (Dummy_3898*Dummy_3902 - Dummy_3899*Dummy_3901)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3904 = (-Dummy_3895*Dummy_3902 + Dummy_3896*Dummy_3901)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3905 = (Dummy_3895*Dummy_3899 - Dummy_3896*Dummy_3898)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3906 = (-Dummy_3897*Dummy_3902 + Dummy_3899*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3907 = (Dummy_3894*Dummy_3902 - Dummy_3896*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3908 = (-Dummy_3894*Dummy_3899 + Dummy_3896*Dummy_3897)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3909 = (Dummy_3897*Dummy_3901 - Dummy_3898*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3910 = (-Dummy_3894*Dummy_3901 + Dummy_3895*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3911 = (Dummy_3894*Dummy_3898 - Dummy_3895*Dummy_3897)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3912 = fabs(Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3913 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_3914 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_3915 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_3916 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3917 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3918 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3919 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3920 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3921 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3922 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3923 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3924 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3925 = -Dummy_3913 + Dummy_3916;
+       const double Dummy_3926 = -Dummy_3913 + Dummy_3919;
+       const double Dummy_3927 = -Dummy_3913 + Dummy_3922;
+       const double Dummy_3928 = -Dummy_3914 + Dummy_3917;
+       const double Dummy_3929 = -Dummy_3914 + Dummy_3920;
+       const double Dummy_3930 = -Dummy_3914 + Dummy_3923;
+       const double Dummy_3931 = -Dummy_3915 + Dummy_3918;
+       const double Dummy_3932 = -Dummy_3915 + Dummy_3921;
+       const double Dummy_3933 = -Dummy_3915 + Dummy_3924;
+       const double Dummy_3934 = (Dummy_3929*Dummy_3933 - Dummy_3930*Dummy_3932)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3935 = (-Dummy_3926*Dummy_3933 + Dummy_3927*Dummy_3932)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3936 = (Dummy_3926*Dummy_3930 - Dummy_3927*Dummy_3929)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3937 = (-Dummy_3928*Dummy_3933 + Dummy_3930*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3938 = (Dummy_3925*Dummy_3933 - Dummy_3927*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3939 = (-Dummy_3925*Dummy_3930 + Dummy_3927*Dummy_3928)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3940 = (Dummy_3928*Dummy_3932 - Dummy_3929*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3941 = (-Dummy_3925*Dummy_3932 + Dummy_3926*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3942 = (Dummy_3925*Dummy_3929 - Dummy_3926*Dummy_3928)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3943 = fabs(Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3944 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3945 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3946 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3947 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3948 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3949 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3950 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3951 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3952 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3953 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3954 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3955 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3956 = -Dummy_3944 + Dummy_3947;
+       const double Dummy_3957 = -Dummy_3944 + Dummy_3950;
+       const double Dummy_3958 = -Dummy_3944 + Dummy_3953;
+       const double Dummy_3959 = -Dummy_3945 + Dummy_3948;
+       const double Dummy_3960 = -Dummy_3945 + Dummy_3951;
+       const double Dummy_3961 = -Dummy_3945 + Dummy_3954;
+       const double Dummy_3962 = -Dummy_3946 + Dummy_3949;
+       const double Dummy_3963 = -Dummy_3946 + Dummy_3952;
+       const double Dummy_3964 = -Dummy_3946 + Dummy_3955;
+       const double Dummy_3965 = (Dummy_3960*Dummy_3964 - Dummy_3961*Dummy_3963)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3966 = (-Dummy_3957*Dummy_3964 + Dummy_3958*Dummy_3963)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3967 = (Dummy_3957*Dummy_3961 - Dummy_3958*Dummy_3960)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3968 = (-Dummy_3959*Dummy_3964 + Dummy_3961*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3969 = (Dummy_3956*Dummy_3964 - Dummy_3958*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3970 = (-Dummy_3956*Dummy_3961 + Dummy_3958*Dummy_3959)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3971 = (Dummy_3959*Dummy_3963 - Dummy_3960*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3972 = (-Dummy_3956*Dummy_3963 + Dummy_3957*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3973 = (Dummy_3956*Dummy_3960 - Dummy_3957*Dummy_3959)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3974 = fabs(Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
-                   const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(tmp_q_9,tmp_q_9,tmp_q_9,tmp_q_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(tmp_q_5,tmp_q_5,tmp_q_5,tmp_q_5))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(tmp_q_5,tmp_q_5,tmp_q_5,tmp_q_5))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(tmp_q_9,tmp_q_9,tmp_q_9,tmp_q_9))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(tmp_q_5,tmp_q_5,tmp_q_5,tmp_q_5))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(tmp_q_9,tmp_q_9,tmp_q_9,tmp_q_9))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(tmp_q_0,tmp_q_0,tmp_q_0,tmp_q_0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(tmp_q_5,tmp_q_5,tmp_q_5,tmp_q_5))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(tmp_q_9,tmp_q_9,tmp_q_9,tmp_q_9))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -340,60 +289,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = jac_affine_inv_0_0*tmp_q_1;
-                   const double tmp_q_3 = jac_affine_inv_1_0*tmp_q_1;
-                   const double tmp_q_4 = jac_affine_inv_2_0*tmp_q_1;
-                   const double tmp_q_6 = jac_affine_inv_0_1*tmp_q_1;
-                   const double tmp_q_7 = jac_affine_inv_1_1*tmp_q_1;
-                   const double tmp_q_8 = jac_affine_inv_2_1*tmp_q_1;
-                   const double tmp_q_10 = jac_affine_inv_0_2*tmp_q_1;
-                   const double tmp_q_11 = jac_affine_inv_1_2*tmp_q_1;
-                   const double tmp_q_12 = jac_affine_inv_2_2*tmp_q_1;
-                   const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(tmp_q_0*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + tmp_q_5*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + tmp_q_9*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(tmp_q_0*tmp_q_2 + tmp_q_10*tmp_q_9 + tmp_q_5*tmp_q_6);
-                   const double res_tmp_0_2 = tmp_q_13*(tmp_q_0*tmp_q_3 + tmp_q_11*tmp_q_9 + tmp_q_5*tmp_q_7);
-                   const double res_tmp_0_3 = tmp_q_13*(tmp_q_0*tmp_q_4 + tmp_q_12*tmp_q_9 + tmp_q_5*tmp_q_8);
-                   const double res_tmp_1_1 = tmp_q_13*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_1 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_1 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(jac_affine_inv_1_0*tmp_q_2 + jac_affine_inv_1_1*tmp_q_6 + jac_affine_inv_1_2*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(jac_affine_inv_2_0*tmp_q_2 + jac_affine_inv_2_1*tmp_q_6 + jac_affine_inv_2_2*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_1 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_1 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(jac_affine_inv_2_0*tmp_q_3 + jac_affine_inv_2_1*tmp_q_7 + jac_affine_inv_2_2*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_1 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_1 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-jac_affine_inv_0_0 - jac_affine_inv_1_0 - jac_affine_inv_2_0)*(-jac_affine_inv_0_0*tmp_q_0 - jac_affine_inv_1_0*tmp_q_0 - jac_affine_inv_2_0*tmp_q_0) + (-jac_affine_inv_0_1 - jac_affine_inv_1_1 - jac_affine_inv_2_1)*(-jac_affine_inv_0_1*tmp_q_0 - jac_affine_inv_1_1*tmp_q_0 - jac_affine_inv_2_1*tmp_q_0) + (-jac_affine_inv_0_2 - jac_affine_inv_1_2 - jac_affine_inv_2_2)*(-jac_affine_inv_0_2*tmp_q_0 - jac_affine_inv_1_2*tmp_q_0 - jac_affine_inv_2_2*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_0 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_0 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_0 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_0 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_0 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_0 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -409,60 +325,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3850,Dummy_3850,Dummy_3850,Dummy_3850));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3851,Dummy_3851,Dummy_3851,Dummy_3851));
-                   const double tmp_q_13 = Dummy_3852*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3855,Dummy_3855,Dummy_3855,Dummy_3855)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3853,Dummy_3853,Dummy_3853,Dummy_3853))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3854,Dummy_3854,Dummy_3854,Dummy_3854))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3853,Dummy_3853,Dummy_3853,Dummy_3853)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3854,Dummy_3854,Dummy_3854,Dummy_3854))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3855,Dummy_3855,Dummy_3855,Dummy_3855))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3853,Dummy_3853,Dummy_3853,Dummy_3853)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3854,Dummy_3854,Dummy_3854,Dummy_3854))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3855,Dummy_3855,Dummy_3855,Dummy_3855))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_3853,Dummy_3853,Dummy_3853,Dummy_3853)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(Dummy_3854,Dummy_3854,Dummy_3854,Dummy_3854))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(Dummy_3855,Dummy_3855,Dummy_3855,Dummy_3855))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843),_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844),_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845),_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3850,Dummy_3850,Dummy_3850,Dummy_3850))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3851,Dummy_3851,Dummy_3851,Dummy_3851))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846),_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847),_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848),_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3850,Dummy_3850,Dummy_3850,Dummy_3850))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3851,Dummy_3851,Dummy_3851,Dummy_3851))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849),_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3850,Dummy_3850,Dummy_3850,Dummy_3850),_mm256_set_pd(Dummy_3850,Dummy_3850,Dummy_3850,Dummy_3850)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3851,Dummy_3851,Dummy_3851,Dummy_3851),_mm256_set_pd(Dummy_3851,Dummy_3851,Dummy_3851,Dummy_3851)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = Dummy_3850*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3841,Dummy_3841,Dummy_3841,Dummy_3841)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3841,Dummy_3841,Dummy_3841,Dummy_3841)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3842,Dummy_3842,Dummy_3842,Dummy_3842)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3842,Dummy_3842,Dummy_3842,Dummy_3842)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3841,Dummy_3841,Dummy_3841,Dummy_3841),_mm256_set_pd(Dummy_3841,Dummy_3841,Dummy_3841,Dummy_3841))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3842,Dummy_3842,Dummy_3842,Dummy_3842),_mm256_set_pd(Dummy_3842,Dummy_3842,Dummy_3842,Dummy_3842)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843),_mm256_set_pd(Dummy_3843,Dummy_3843,Dummy_3843,Dummy_3843)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844),_mm256_set_pd(Dummy_3844,Dummy_3844,Dummy_3844,Dummy_3844))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845),_mm256_set_pd(Dummy_3845,Dummy_3845,Dummy_3845,Dummy_3845)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846),_mm256_set_pd(Dummy_3846,Dummy_3846,Dummy_3846,Dummy_3846)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847),_mm256_set_pd(Dummy_3847,Dummy_3847,Dummy_3847,Dummy_3847))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848),_mm256_set_pd(Dummy_3848,Dummy_3848,Dummy_3848,Dummy_3848)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849),_mm256_set_pd(Dummy_3849,Dummy_3849,Dummy_3849,Dummy_3849)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -474,60 +357,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = Dummy_3843*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3846*tmp_q_1;
-                   const double tmp_q_4 = Dummy_3849*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3844*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3847*tmp_q_1;
-                   const double tmp_q_8 = Dummy_3850*tmp_q_1;
-                   const double tmp_q_10 = Dummy_3845*tmp_q_1;
-                   const double tmp_q_11 = Dummy_3848*tmp_q_1;
-                   const double tmp_q_12 = Dummy_3851*tmp_q_1;
-                   const double tmp_q_13 = Dummy_3852*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(Dummy_3853*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3854*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3855*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(Dummy_3853*tmp_q_2 + Dummy_3854*tmp_q_6 + Dummy_3855*tmp_q_10);
-                   const double res_tmp_0_2 = tmp_q_13*(Dummy_3853*tmp_q_3 + Dummy_3854*tmp_q_7 + Dummy_3855*tmp_q_11);
-                   const double res_tmp_0_3 = tmp_q_13*(Dummy_3853*tmp_q_4 + Dummy_3854*tmp_q_8 + Dummy_3855*tmp_q_12);
-                   const double res_tmp_1_1 = tmp_q_13*((Dummy_3843*Dummy_3843)*tmp_q_1 + (Dummy_3844*Dummy_3844)*tmp_q_1 + (Dummy_3845*Dummy_3845)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(Dummy_3846*tmp_q_2 + Dummy_3847*tmp_q_6 + Dummy_3848*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(Dummy_3849*tmp_q_2 + Dummy_3850*tmp_q_6 + Dummy_3851*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((Dummy_3846*Dummy_3846)*tmp_q_1 + (Dummy_3847*Dummy_3847)*tmp_q_1 + (Dummy_3848*Dummy_3848)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(Dummy_3849*tmp_q_3 + Dummy_3850*tmp_q_7 + Dummy_3851*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((Dummy_3849*Dummy_3849)*tmp_q_1 + (Dummy_3850*Dummy_3850)*tmp_q_1 + (Dummy_3851*Dummy_3851)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = Dummy_3850*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3841 - Dummy_3844 - Dummy_3847)*(-Dummy_3841*tmp_q_0 - Dummy_3844*tmp_q_0 - Dummy_3847*tmp_q_0) + (-Dummy_3842 - Dummy_3845 - Dummy_3848)*(-Dummy_3842*tmp_q_0 - Dummy_3845*tmp_q_0 - Dummy_3848*tmp_q_0) + (-Dummy_3843 - Dummy_3846 - Dummy_3849)*(-Dummy_3843*tmp_q_0 - Dummy_3846*tmp_q_0 - Dummy_3849*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3841*Dummy_3841)*tmp_q_0 + (Dummy_3842*Dummy_3842)*tmp_q_0 + (Dummy_3843*Dummy_3843)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3844*Dummy_3844)*tmp_q_0 + (Dummy_3845*Dummy_3845)*tmp_q_0 + (Dummy_3846*Dummy_3846)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((Dummy_3847*Dummy_3847)*tmp_q_0 + (Dummy_3848*Dummy_3848)*tmp_q_0 + (Dummy_3849*Dummy_3849)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -543,60 +393,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3883,Dummy_3883,Dummy_3883,Dummy_3883));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3881,Dummy_3881,Dummy_3881,Dummy_3881));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3884,Dummy_3884,Dummy_3884,Dummy_3884));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3882,Dummy_3882,Dummy_3882,Dummy_3882));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3885,Dummy_3885,Dummy_3885,Dummy_3885));
-                   const double tmp_q_13 = Dummy_3886*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3889,Dummy_3889,Dummy_3889,Dummy_3889)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3887,Dummy_3887,Dummy_3887,Dummy_3887))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3888,Dummy_3888,Dummy_3888,Dummy_3888))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3887,Dummy_3887,Dummy_3887,Dummy_3887)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3888,Dummy_3888,Dummy_3888,Dummy_3888))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3889,Dummy_3889,Dummy_3889,Dummy_3889))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3887,Dummy_3887,Dummy_3887,Dummy_3887)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3888,Dummy_3888,Dummy_3888,Dummy_3888))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3889,Dummy_3889,Dummy_3889,Dummy_3889))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_3887,Dummy_3887,Dummy_3887,Dummy_3887)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(Dummy_3888,Dummy_3888,Dummy_3888,Dummy_3888))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(Dummy_3889,Dummy_3889,Dummy_3889,Dummy_3889))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877),_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878),_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879),_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3881,Dummy_3881,Dummy_3881,Dummy_3881))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3882,Dummy_3882,Dummy_3882,Dummy_3882))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3883,Dummy_3883,Dummy_3883,Dummy_3883)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3884,Dummy_3884,Dummy_3884,Dummy_3884))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3885,Dummy_3885,Dummy_3885,Dummy_3885))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880),_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3881,Dummy_3881,Dummy_3881,Dummy_3881),_mm256_set_pd(Dummy_3881,Dummy_3881,Dummy_3881,Dummy_3881)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3882,Dummy_3882,Dummy_3882,Dummy_3882),_mm256_set_pd(Dummy_3882,Dummy_3882,Dummy_3882,Dummy_3882)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3883,Dummy_3883,Dummy_3883,Dummy_3883)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3884,Dummy_3884,Dummy_3884,Dummy_3884))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3885,Dummy_3885,Dummy_3885,Dummy_3885))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3883,Dummy_3883,Dummy_3883,Dummy_3883),_mm256_set_pd(Dummy_3883,Dummy_3883,Dummy_3883,Dummy_3883))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3884,Dummy_3884,Dummy_3884,Dummy_3884),_mm256_set_pd(Dummy_3884,Dummy_3884,Dummy_3884,Dummy_3884)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3885,Dummy_3885,Dummy_3885,Dummy_3885),_mm256_set_pd(Dummy_3885,Dummy_3885,Dummy_3885,Dummy_3885)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = Dummy_3881*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3872,Dummy_3872,Dummy_3872,Dummy_3872)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3875,Dummy_3875,Dummy_3875,Dummy_3875))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3872,Dummy_3872,Dummy_3872,Dummy_3872)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3875,Dummy_3875,Dummy_3875,Dummy_3875))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3873,Dummy_3873,Dummy_3873,Dummy_3873)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3876,Dummy_3876,Dummy_3876,Dummy_3876))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3873,Dummy_3873,Dummy_3873,Dummy_3873)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3876,Dummy_3876,Dummy_3876,Dummy_3876))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3874,Dummy_3874,Dummy_3874,Dummy_3874)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3874,Dummy_3874,Dummy_3874,Dummy_3874)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3872,Dummy_3872,Dummy_3872,Dummy_3872),_mm256_set_pd(Dummy_3872,Dummy_3872,Dummy_3872,Dummy_3872))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3873,Dummy_3873,Dummy_3873,Dummy_3873),_mm256_set_pd(Dummy_3873,Dummy_3873,Dummy_3873,Dummy_3873)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3874,Dummy_3874,Dummy_3874,Dummy_3874),_mm256_set_pd(Dummy_3874,Dummy_3874,Dummy_3874,Dummy_3874)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3875,Dummy_3875,Dummy_3875,Dummy_3875),_mm256_set_pd(Dummy_3875,Dummy_3875,Dummy_3875,Dummy_3875))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3876,Dummy_3876,Dummy_3876,Dummy_3876),_mm256_set_pd(Dummy_3876,Dummy_3876,Dummy_3876,Dummy_3876)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877),_mm256_set_pd(Dummy_3877,Dummy_3877,Dummy_3877,Dummy_3877)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878),_mm256_set_pd(Dummy_3878,Dummy_3878,Dummy_3878,Dummy_3878))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879),_mm256_set_pd(Dummy_3879,Dummy_3879,Dummy_3879,Dummy_3879)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880),_mm256_set_pd(Dummy_3880,Dummy_3880,Dummy_3880,Dummy_3880)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -608,60 +425,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = Dummy_3877*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3880*tmp_q_1;
-                   const double tmp_q_4 = Dummy_3883*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3878*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3881*tmp_q_1;
-                   const double tmp_q_8 = Dummy_3884*tmp_q_1;
-                   const double tmp_q_10 = Dummy_3879*tmp_q_1;
-                   const double tmp_q_11 = Dummy_3882*tmp_q_1;
-                   const double tmp_q_12 = Dummy_3885*tmp_q_1;
-                   const double tmp_q_13 = Dummy_3886*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(Dummy_3887*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3888*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3889*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(Dummy_3887*tmp_q_2 + Dummy_3888*tmp_q_6 + Dummy_3889*tmp_q_10);
-                   const double res_tmp_0_2 = tmp_q_13*(Dummy_3887*tmp_q_3 + Dummy_3888*tmp_q_7 + Dummy_3889*tmp_q_11);
-                   const double res_tmp_0_3 = tmp_q_13*(Dummy_3887*tmp_q_4 + Dummy_3888*tmp_q_8 + Dummy_3889*tmp_q_12);
-                   const double res_tmp_1_1 = tmp_q_13*((Dummy_3877*Dummy_3877)*tmp_q_1 + (Dummy_3878*Dummy_3878)*tmp_q_1 + (Dummy_3879*Dummy_3879)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(Dummy_3880*tmp_q_2 + Dummy_3881*tmp_q_6 + Dummy_3882*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(Dummy_3883*tmp_q_2 + Dummy_3884*tmp_q_6 + Dummy_3885*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((Dummy_3880*Dummy_3880)*tmp_q_1 + (Dummy_3881*Dummy_3881)*tmp_q_1 + (Dummy_3882*Dummy_3882)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(Dummy_3883*tmp_q_3 + Dummy_3884*tmp_q_7 + Dummy_3885*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((Dummy_3883*Dummy_3883)*tmp_q_1 + (Dummy_3884*Dummy_3884)*tmp_q_1 + (Dummy_3885*Dummy_3885)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = Dummy_3881*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3872 - Dummy_3875 - Dummy_3878)*(-Dummy_3872*tmp_q_0 - Dummy_3875*tmp_q_0 - Dummy_3878*tmp_q_0) + (-Dummy_3873 - Dummy_3876 - Dummy_3879)*(-Dummy_3873*tmp_q_0 - Dummy_3876*tmp_q_0 - Dummy_3879*tmp_q_0) + (-Dummy_3874 - Dummy_3877 - Dummy_3880)*(-Dummy_3874*tmp_q_0 - Dummy_3877*tmp_q_0 - Dummy_3880*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3872*Dummy_3872)*tmp_q_0 + (Dummy_3873*Dummy_3873)*tmp_q_0 + (Dummy_3874*Dummy_3874)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3875*Dummy_3875)*tmp_q_0 + (Dummy_3876*Dummy_3876)*tmp_q_0 + (Dummy_3877*Dummy_3877)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((Dummy_3878*Dummy_3878)*tmp_q_0 + (Dummy_3879*Dummy_3879)*tmp_q_0 + (Dummy_3880*Dummy_3880)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -677,60 +461,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3914,Dummy_3914,Dummy_3914,Dummy_3914));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3917,Dummy_3917,Dummy_3917,Dummy_3917));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3912,Dummy_3912,Dummy_3912,Dummy_3912));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3915,Dummy_3915,Dummy_3915,Dummy_3915));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3918,Dummy_3918,Dummy_3918,Dummy_3918));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3913,Dummy_3913,Dummy_3913,Dummy_3913));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3916,Dummy_3916,Dummy_3916,Dummy_3916));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3919,Dummy_3919,Dummy_3919,Dummy_3919));
-                   const double tmp_q_13 = Dummy_3920*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3923,Dummy_3923,Dummy_3923,Dummy_3923)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3921,Dummy_3921,Dummy_3921,Dummy_3921))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3922,Dummy_3922,Dummy_3922,Dummy_3922))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3921,Dummy_3921,Dummy_3921,Dummy_3921)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3922,Dummy_3922,Dummy_3922,Dummy_3922))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3923,Dummy_3923,Dummy_3923,Dummy_3923))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3921,Dummy_3921,Dummy_3921,Dummy_3921)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3922,Dummy_3922,Dummy_3922,Dummy_3922))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3923,Dummy_3923,Dummy_3923,Dummy_3923))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_3921,Dummy_3921,Dummy_3921,Dummy_3921)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(Dummy_3922,Dummy_3922,Dummy_3922,Dummy_3922))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(Dummy_3923,Dummy_3923,Dummy_3923,Dummy_3923))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911),_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3912,Dummy_3912,Dummy_3912,Dummy_3912),_mm256_set_pd(Dummy_3912,Dummy_3912,Dummy_3912,Dummy_3912)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3913,Dummy_3913,Dummy_3913,Dummy_3913),_mm256_set_pd(Dummy_3913,Dummy_3913,Dummy_3913,Dummy_3913)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3914,Dummy_3914,Dummy_3914,Dummy_3914)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3915,Dummy_3915,Dummy_3915,Dummy_3915))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3916,Dummy_3916,Dummy_3916,Dummy_3916))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3917,Dummy_3917,Dummy_3917,Dummy_3917)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3918,Dummy_3918,Dummy_3918,Dummy_3918))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3919,Dummy_3919,Dummy_3919,Dummy_3919))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3914,Dummy_3914,Dummy_3914,Dummy_3914),_mm256_set_pd(Dummy_3914,Dummy_3914,Dummy_3914,Dummy_3914))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3915,Dummy_3915,Dummy_3915,Dummy_3915),_mm256_set_pd(Dummy_3915,Dummy_3915,Dummy_3915,Dummy_3915)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3916,Dummy_3916,Dummy_3916,Dummy_3916),_mm256_set_pd(Dummy_3916,Dummy_3916,Dummy_3916,Dummy_3916)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3917,Dummy_3917,Dummy_3917,Dummy_3917)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3918,Dummy_3918,Dummy_3918,Dummy_3918))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3919,Dummy_3919,Dummy_3919,Dummy_3919))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3917,Dummy_3917,Dummy_3917,Dummy_3917),_mm256_set_pd(Dummy_3917,Dummy_3917,Dummy_3917,Dummy_3917))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3918,Dummy_3918,Dummy_3918,Dummy_3918),_mm256_set_pd(Dummy_3918,Dummy_3918,Dummy_3918,Dummy_3918)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3919,Dummy_3919,Dummy_3919,Dummy_3919),_mm256_set_pd(Dummy_3919,Dummy_3919,Dummy_3919,Dummy_3919)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = Dummy_3912*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3903,Dummy_3903,Dummy_3903,Dummy_3903)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3906,Dummy_3906,Dummy_3906,Dummy_3906))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3909,Dummy_3909,Dummy_3909,Dummy_3909))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3903,Dummy_3903,Dummy_3903,Dummy_3903)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3906,Dummy_3906,Dummy_3906,Dummy_3906))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3909,Dummy_3909,Dummy_3909,Dummy_3909)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3904,Dummy_3904,Dummy_3904,Dummy_3904)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3907,Dummy_3907,Dummy_3907,Dummy_3907))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3910,Dummy_3910,Dummy_3910,Dummy_3910))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3904,Dummy_3904,Dummy_3904,Dummy_3904)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3907,Dummy_3907,Dummy_3907,Dummy_3907))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3910,Dummy_3910,Dummy_3910,Dummy_3910))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3905,Dummy_3905,Dummy_3905,Dummy_3905)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3908,Dummy_3908,Dummy_3908,Dummy_3908))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3905,Dummy_3905,Dummy_3905,Dummy_3905)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3908,Dummy_3908,Dummy_3908,Dummy_3908))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3903,Dummy_3903,Dummy_3903,Dummy_3903),_mm256_set_pd(Dummy_3903,Dummy_3903,Dummy_3903,Dummy_3903))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3904,Dummy_3904,Dummy_3904,Dummy_3904),_mm256_set_pd(Dummy_3904,Dummy_3904,Dummy_3904,Dummy_3904)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3905,Dummy_3905,Dummy_3905,Dummy_3905),_mm256_set_pd(Dummy_3905,Dummy_3905,Dummy_3905,Dummy_3905)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3906,Dummy_3906,Dummy_3906,Dummy_3906),_mm256_set_pd(Dummy_3906,Dummy_3906,Dummy_3906,Dummy_3906))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3907,Dummy_3907,Dummy_3907,Dummy_3907),_mm256_set_pd(Dummy_3907,Dummy_3907,Dummy_3907,Dummy_3907)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3908,Dummy_3908,Dummy_3908,Dummy_3908),_mm256_set_pd(Dummy_3908,Dummy_3908,Dummy_3908,Dummy_3908)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3909,Dummy_3909,Dummy_3909,Dummy_3909),_mm256_set_pd(Dummy_3909,Dummy_3909,Dummy_3909,Dummy_3909))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3910,Dummy_3910,Dummy_3910,Dummy_3910),_mm256_set_pd(Dummy_3910,Dummy_3910,Dummy_3910,Dummy_3910)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911),_mm256_set_pd(Dummy_3911,Dummy_3911,Dummy_3911,Dummy_3911)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -742,60 +493,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = Dummy_3911*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3914*tmp_q_1;
-                   const double tmp_q_4 = Dummy_3917*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3912*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3915*tmp_q_1;
-                   const double tmp_q_8 = Dummy_3918*tmp_q_1;
-                   const double tmp_q_10 = Dummy_3913*tmp_q_1;
-                   const double tmp_q_11 = Dummy_3916*tmp_q_1;
-                   const double tmp_q_12 = Dummy_3919*tmp_q_1;
-                   const double tmp_q_13 = Dummy_3920*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(Dummy_3921*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3922*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3923*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(Dummy_3921*tmp_q_2 + Dummy_3922*tmp_q_6 + Dummy_3923*tmp_q_10);
-                   const double res_tmp_0_2 = tmp_q_13*(Dummy_3921*tmp_q_3 + Dummy_3922*tmp_q_7 + Dummy_3923*tmp_q_11);
-                   const double res_tmp_0_3 = tmp_q_13*(Dummy_3921*tmp_q_4 + Dummy_3922*tmp_q_8 + Dummy_3923*tmp_q_12);
-                   const double res_tmp_1_1 = tmp_q_13*((Dummy_3911*Dummy_3911)*tmp_q_1 + (Dummy_3912*Dummy_3912)*tmp_q_1 + (Dummy_3913*Dummy_3913)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(Dummy_3914*tmp_q_2 + Dummy_3915*tmp_q_6 + Dummy_3916*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(Dummy_3917*tmp_q_2 + Dummy_3918*tmp_q_6 + Dummy_3919*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((Dummy_3914*Dummy_3914)*tmp_q_1 + (Dummy_3915*Dummy_3915)*tmp_q_1 + (Dummy_3916*Dummy_3916)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(Dummy_3917*tmp_q_3 + Dummy_3918*tmp_q_7 + Dummy_3919*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((Dummy_3917*Dummy_3917)*tmp_q_1 + (Dummy_3918*Dummy_3918)*tmp_q_1 + (Dummy_3919*Dummy_3919)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = Dummy_3912*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3903 - Dummy_3906 - Dummy_3909)*(-Dummy_3903*tmp_q_0 - Dummy_3906*tmp_q_0 - Dummy_3909*tmp_q_0) + (-Dummy_3904 - Dummy_3907 - Dummy_3910)*(-Dummy_3904*tmp_q_0 - Dummy_3907*tmp_q_0 - Dummy_3910*tmp_q_0) + (-Dummy_3905 - Dummy_3908 - Dummy_3911)*(-Dummy_3905*tmp_q_0 - Dummy_3908*tmp_q_0 - Dummy_3911*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3903*Dummy_3903)*tmp_q_0 + (Dummy_3904*Dummy_3904)*tmp_q_0 + (Dummy_3905*Dummy_3905)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3906*Dummy_3906)*tmp_q_0 + (Dummy_3907*Dummy_3907)*tmp_q_0 + (Dummy_3908*Dummy_3908)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((Dummy_3909*Dummy_3909)*tmp_q_0 + (Dummy_3910*Dummy_3910)*tmp_q_0 + (Dummy_3911*Dummy_3911)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -811,60 +529,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3945,Dummy_3945,Dummy_3945,Dummy_3945));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3948,Dummy_3948,Dummy_3948,Dummy_3948));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3951,Dummy_3951,Dummy_3951,Dummy_3951));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3946,Dummy_3946,Dummy_3946,Dummy_3946));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3949,Dummy_3949,Dummy_3949,Dummy_3949));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3952,Dummy_3952,Dummy_3952,Dummy_3952));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3947,Dummy_3947,Dummy_3947,Dummy_3947));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3950,Dummy_3950,Dummy_3950,Dummy_3950));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3953,Dummy_3953,Dummy_3953,Dummy_3953));
-                   const double tmp_q_13 = Dummy_3954*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3957,Dummy_3957,Dummy_3957,Dummy_3957)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3955,Dummy_3955,Dummy_3955,Dummy_3955))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3956,Dummy_3956,Dummy_3956,Dummy_3956))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3955,Dummy_3955,Dummy_3955,Dummy_3955)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3956,Dummy_3956,Dummy_3956,Dummy_3956))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3957,Dummy_3957,Dummy_3957,Dummy_3957))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3955,Dummy_3955,Dummy_3955,Dummy_3955)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3956,Dummy_3956,Dummy_3956,Dummy_3956))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3957,Dummy_3957,Dummy_3957,Dummy_3957))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_3955,Dummy_3955,Dummy_3955,Dummy_3955)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(Dummy_3956,Dummy_3956,Dummy_3956,Dummy_3956))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(Dummy_3957,Dummy_3957,Dummy_3957,Dummy_3957))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3945,Dummy_3945,Dummy_3945,Dummy_3945),_mm256_set_pd(Dummy_3945,Dummy_3945,Dummy_3945,Dummy_3945))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3946,Dummy_3946,Dummy_3946,Dummy_3946),_mm256_set_pd(Dummy_3946,Dummy_3946,Dummy_3946,Dummy_3946)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3947,Dummy_3947,Dummy_3947,Dummy_3947),_mm256_set_pd(Dummy_3947,Dummy_3947,Dummy_3947,Dummy_3947)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3948,Dummy_3948,Dummy_3948,Dummy_3948)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3949,Dummy_3949,Dummy_3949,Dummy_3949))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3950,Dummy_3950,Dummy_3950,Dummy_3950))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3951,Dummy_3951,Dummy_3951,Dummy_3951)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3952,Dummy_3952,Dummy_3952,Dummy_3952))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3953,Dummy_3953,Dummy_3953,Dummy_3953))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3948,Dummy_3948,Dummy_3948,Dummy_3948),_mm256_set_pd(Dummy_3948,Dummy_3948,Dummy_3948,Dummy_3948))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3949,Dummy_3949,Dummy_3949,Dummy_3949),_mm256_set_pd(Dummy_3949,Dummy_3949,Dummy_3949,Dummy_3949)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3950,Dummy_3950,Dummy_3950,Dummy_3950),_mm256_set_pd(Dummy_3950,Dummy_3950,Dummy_3950,Dummy_3950)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3951,Dummy_3951,Dummy_3951,Dummy_3951)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3952,Dummy_3952,Dummy_3952,Dummy_3952))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3953,Dummy_3953,Dummy_3953,Dummy_3953))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3951,Dummy_3951,Dummy_3951,Dummy_3951),_mm256_set_pd(Dummy_3951,Dummy_3951,Dummy_3951,Dummy_3951))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3952,Dummy_3952,Dummy_3952,Dummy_3952),_mm256_set_pd(Dummy_3952,Dummy_3952,Dummy_3952,Dummy_3952)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3953,Dummy_3953,Dummy_3953,Dummy_3953),_mm256_set_pd(Dummy_3953,Dummy_3953,Dummy_3953,Dummy_3953)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = Dummy_3943*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3934,Dummy_3934,Dummy_3934,Dummy_3934)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3937,Dummy_3937,Dummy_3937,Dummy_3937))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3940,Dummy_3940,Dummy_3940,Dummy_3940))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3934,Dummy_3934,Dummy_3934,Dummy_3934)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3937,Dummy_3937,Dummy_3937,Dummy_3937))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3940,Dummy_3940,Dummy_3940,Dummy_3940)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3935,Dummy_3935,Dummy_3935,Dummy_3935)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3938,Dummy_3938,Dummy_3938,Dummy_3938))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3941,Dummy_3941,Dummy_3941,Dummy_3941))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3935,Dummy_3935,Dummy_3935,Dummy_3935)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3938,Dummy_3938,Dummy_3938,Dummy_3938))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3941,Dummy_3941,Dummy_3941,Dummy_3941))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3936,Dummy_3936,Dummy_3936,Dummy_3936)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3939,Dummy_3939,Dummy_3939,Dummy_3939))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3942,Dummy_3942,Dummy_3942,Dummy_3942))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3936,Dummy_3936,Dummy_3936,Dummy_3936)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3939,Dummy_3939,Dummy_3939,Dummy_3939))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3942,Dummy_3942,Dummy_3942,Dummy_3942))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3934,Dummy_3934,Dummy_3934,Dummy_3934),_mm256_set_pd(Dummy_3934,Dummy_3934,Dummy_3934,Dummy_3934))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3935,Dummy_3935,Dummy_3935,Dummy_3935),_mm256_set_pd(Dummy_3935,Dummy_3935,Dummy_3935,Dummy_3935)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3936,Dummy_3936,Dummy_3936,Dummy_3936),_mm256_set_pd(Dummy_3936,Dummy_3936,Dummy_3936,Dummy_3936)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3937,Dummy_3937,Dummy_3937,Dummy_3937),_mm256_set_pd(Dummy_3937,Dummy_3937,Dummy_3937,Dummy_3937))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3938,Dummy_3938,Dummy_3938,Dummy_3938),_mm256_set_pd(Dummy_3938,Dummy_3938,Dummy_3938,Dummy_3938)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3939,Dummy_3939,Dummy_3939,Dummy_3939),_mm256_set_pd(Dummy_3939,Dummy_3939,Dummy_3939,Dummy_3939)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3940,Dummy_3940,Dummy_3940,Dummy_3940),_mm256_set_pd(Dummy_3940,Dummy_3940,Dummy_3940,Dummy_3940))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3941,Dummy_3941,Dummy_3941,Dummy_3941),_mm256_set_pd(Dummy_3941,Dummy_3941,Dummy_3941,Dummy_3941)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3942,Dummy_3942,Dummy_3942,Dummy_3942),_mm256_set_pd(Dummy_3942,Dummy_3942,Dummy_3942,Dummy_3942)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -876,60 +561,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = Dummy_3945*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3948*tmp_q_1;
-                   const double tmp_q_4 = Dummy_3951*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3946*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3949*tmp_q_1;
-                   const double tmp_q_8 = Dummy_3952*tmp_q_1;
-                   const double tmp_q_10 = Dummy_3947*tmp_q_1;
-                   const double tmp_q_11 = Dummy_3950*tmp_q_1;
-                   const double tmp_q_12 = Dummy_3953*tmp_q_1;
-                   const double tmp_q_13 = Dummy_3954*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(Dummy_3955*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3956*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3957*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(Dummy_3955*tmp_q_2 + Dummy_3956*tmp_q_6 + Dummy_3957*tmp_q_10);
-                   const double res_tmp_0_2 = tmp_q_13*(Dummy_3955*tmp_q_3 + Dummy_3956*tmp_q_7 + Dummy_3957*tmp_q_11);
-                   const double res_tmp_0_3 = tmp_q_13*(Dummy_3955*tmp_q_4 + Dummy_3956*tmp_q_8 + Dummy_3957*tmp_q_12);
-                   const double res_tmp_1_1 = tmp_q_13*((Dummy_3945*Dummy_3945)*tmp_q_1 + (Dummy_3946*Dummy_3946)*tmp_q_1 + (Dummy_3947*Dummy_3947)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(Dummy_3948*tmp_q_2 + Dummy_3949*tmp_q_6 + Dummy_3950*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(Dummy_3951*tmp_q_2 + Dummy_3952*tmp_q_6 + Dummy_3953*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((Dummy_3948*Dummy_3948)*tmp_q_1 + (Dummy_3949*Dummy_3949)*tmp_q_1 + (Dummy_3950*Dummy_3950)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(Dummy_3951*tmp_q_3 + Dummy_3952*tmp_q_7 + Dummy_3953*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((Dummy_3951*Dummy_3951)*tmp_q_1 + (Dummy_3952*Dummy_3952)*tmp_q_1 + (Dummy_3953*Dummy_3953)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = Dummy_3943*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3934 - Dummy_3937 - Dummy_3940)*(-Dummy_3934*tmp_q_0 - Dummy_3937*tmp_q_0 - Dummy_3940*tmp_q_0) + (-Dummy_3935 - Dummy_3938 - Dummy_3941)*(-Dummy_3935*tmp_q_0 - Dummy_3938*tmp_q_0 - Dummy_3941*tmp_q_0) + (-Dummy_3936 - Dummy_3939 - Dummy_3942)*(-Dummy_3936*tmp_q_0 - Dummy_3939*tmp_q_0 - Dummy_3942*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3934*Dummy_3934)*tmp_q_0 + (Dummy_3935*Dummy_3935)*tmp_q_0 + (Dummy_3936*Dummy_3936)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3937*Dummy_3937)*tmp_q_0 + (Dummy_3938*Dummy_3938)*tmp_q_0 + (Dummy_3939*Dummy_3939)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((Dummy_3940*Dummy_3940)*tmp_q_0 + (Dummy_3941*Dummy_3941)*tmp_q_0 + (Dummy_3942*Dummy_3942)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -945,60 +597,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_3 = _mm256_loadu_pd(& _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const __m256d tmp_q_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
-                   const __m256d tmp_q_2 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3979,Dummy_3979,Dummy_3979,Dummy_3979));
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3982,Dummy_3982,Dummy_3982,Dummy_3982));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3985,Dummy_3985,Dummy_3985,Dummy_3985));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3980,Dummy_3980,Dummy_3980,Dummy_3980));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3983,Dummy_3983,Dummy_3983,Dummy_3983));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3986,Dummy_3986,Dummy_3986,Dummy_3986));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3981,Dummy_3981,Dummy_3981,Dummy_3981));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3984,Dummy_3984,Dummy_3984,Dummy_3984));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_3987,Dummy_3987,Dummy_3987,Dummy_3987));
-                   const double tmp_q_13 = Dummy_3988*_data_q_w[q];
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3991,Dummy_3991,Dummy_3991,Dummy_3991)),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_4,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3989,Dummy_3989,Dummy_3989,Dummy_3989))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(Dummy_3990,Dummy_3990,Dummy_3990,Dummy_3990))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3989,Dummy_3989,Dummy_3989,Dummy_3989)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3990,Dummy_3990,Dummy_3990,Dummy_3990))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3991,Dummy_3991,Dummy_3991,Dummy_3991))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3989,Dummy_3989,Dummy_3989,Dummy_3989)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3990,Dummy_3990,Dummy_3990,Dummy_3990))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3991,Dummy_3991,Dummy_3991,Dummy_3991))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_3989,Dummy_3989,Dummy_3989,Dummy_3989)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(Dummy_3990,Dummy_3990,Dummy_3990,Dummy_3990))),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(Dummy_3991,Dummy_3991,Dummy_3991,Dummy_3991))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3979,Dummy_3979,Dummy_3979,Dummy_3979),_mm256_set_pd(Dummy_3979,Dummy_3979,Dummy_3979,Dummy_3979))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3980,Dummy_3980,Dummy_3980,Dummy_3980),_mm256_set_pd(Dummy_3980,Dummy_3980,Dummy_3980,Dummy_3980)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3981,Dummy_3981,Dummy_3981,Dummy_3981),_mm256_set_pd(Dummy_3981,Dummy_3981,Dummy_3981,Dummy_3981)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3982,Dummy_3982,Dummy_3982,Dummy_3982)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3983,Dummy_3983,Dummy_3983,Dummy_3983))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3984,Dummy_3984,Dummy_3984,Dummy_3984))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_3985,Dummy_3985,Dummy_3985,Dummy_3985)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(Dummy_3986,Dummy_3986,Dummy_3986,Dummy_3986))),_mm256_mul_pd(tmp_q_10,_mm256_set_pd(Dummy_3987,Dummy_3987,Dummy_3987,Dummy_3987))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3982,Dummy_3982,Dummy_3982,Dummy_3982),_mm256_set_pd(Dummy_3982,Dummy_3982,Dummy_3982,Dummy_3982))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3983,Dummy_3983,Dummy_3983,Dummy_3983),_mm256_set_pd(Dummy_3983,Dummy_3983,Dummy_3983,Dummy_3983)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3984,Dummy_3984,Dummy_3984,Dummy_3984),_mm256_set_pd(Dummy_3984,Dummy_3984,Dummy_3984,Dummy_3984)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(Dummy_3985,Dummy_3985,Dummy_3985,Dummy_3985)),_mm256_mul_pd(tmp_q_7,_mm256_set_pd(Dummy_3986,Dummy_3986,Dummy_3986,Dummy_3986))),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(Dummy_3987,Dummy_3987,Dummy_3987,Dummy_3987))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3985,Dummy_3985,Dummy_3985,Dummy_3985),_mm256_set_pd(Dummy_3985,Dummy_3985,Dummy_3985,Dummy_3985))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3986,Dummy_3986,Dummy_3986,Dummy_3986),_mm256_set_pd(Dummy_3986,Dummy_3986,Dummy_3986,Dummy_3986)))),_mm256_mul_pd(tmp_q_1,_mm256_mul_pd(_mm256_set_pd(Dummy_3987,Dummy_3987,Dummy_3987,Dummy_3987),_mm256_set_pd(Dummy_3987,Dummy_3987,Dummy_3987,Dummy_3987)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d tmp_q_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0))),_mm256_mul_pd(k_dof_1,_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))),_mm256_mul_pd(k_dof_2,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(k_dof_3,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])));
+                   const double tmp_q_1 = Dummy_3974*_data_q_w[q];
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3965,Dummy_3965,Dummy_3965,Dummy_3965)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3968,Dummy_3968,Dummy_3968,Dummy_3968))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3971,Dummy_3971,Dummy_3971,Dummy_3971))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3965,Dummy_3965,Dummy_3965,Dummy_3965)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3968,Dummy_3968,Dummy_3968,Dummy_3968))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3971,Dummy_3971,Dummy_3971,Dummy_3971)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3966,Dummy_3966,Dummy_3966,Dummy_3966)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3969,Dummy_3969,Dummy_3969,Dummy_3969))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3972,Dummy_3972,Dummy_3972,Dummy_3972))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3966,Dummy_3966,Dummy_3966,Dummy_3966)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3969,Dummy_3969,Dummy_3969,Dummy_3969))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3972,Dummy_3972,Dummy_3972,Dummy_3972))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3967,Dummy_3967,Dummy_3967,Dummy_3967)),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3970,Dummy_3970,Dummy_3970,Dummy_3970))),_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(Dummy_3973,Dummy_3973,Dummy_3973,Dummy_3973))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3967,Dummy_3967,Dummy_3967,Dummy_3967)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3970,Dummy_3970,Dummy_3970,Dummy_3970))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_set_pd(Dummy_3973,Dummy_3973,Dummy_3973,Dummy_3973))))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3965,Dummy_3965,Dummy_3965,Dummy_3965),_mm256_set_pd(Dummy_3965,Dummy_3965,Dummy_3965,Dummy_3965))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3966,Dummy_3966,Dummy_3966,Dummy_3966),_mm256_set_pd(Dummy_3966,Dummy_3966,Dummy_3966,Dummy_3966)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3967,Dummy_3967,Dummy_3967,Dummy_3967),_mm256_set_pd(Dummy_3967,Dummy_3967,Dummy_3967,Dummy_3967)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3968,Dummy_3968,Dummy_3968,Dummy_3968),_mm256_set_pd(Dummy_3968,Dummy_3968,Dummy_3968,Dummy_3968))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3969,Dummy_3969,Dummy_3969,Dummy_3969),_mm256_set_pd(Dummy_3969,Dummy_3969,Dummy_3969,Dummy_3969)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3970,Dummy_3970,Dummy_3970,Dummy_3970),_mm256_set_pd(Dummy_3970,Dummy_3970,Dummy_3970,Dummy_3970)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3971,Dummy_3971,Dummy_3971,Dummy_3971),_mm256_set_pd(Dummy_3971,Dummy_3971,Dummy_3971,Dummy_3971))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3972,Dummy_3972,Dummy_3972,Dummy_3972),_mm256_set_pd(Dummy_3972,Dummy_3972,Dummy_3972,Dummy_3972)))),_mm256_mul_pd(tmp_q_0,_mm256_mul_pd(_mm256_set_pd(Dummy_3973,Dummy_3973,Dummy_3973,Dummy_3973),_mm256_set_pd(Dummy_3973,Dummy_3973,Dummy_3973,Dummy_3973)))),_mm256_set_pd(tmp_q_1,tmp_q_1,tmp_q_1,tmp_q_1));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -1010,60 +629,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+                const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
                 double q_acc_3_3 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
-                   const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                   const double tmp_q_2 = Dummy_3979*tmp_q_1;
-                   const double tmp_q_3 = Dummy_3982*tmp_q_1;
-                   const double tmp_q_4 = Dummy_3985*tmp_q_1;
-                   const double tmp_q_6 = Dummy_3980*tmp_q_1;
-                   const double tmp_q_7 = Dummy_3983*tmp_q_1;
-                   const double tmp_q_8 = Dummy_3986*tmp_q_1;
-                   const double tmp_q_10 = Dummy_3981*tmp_q_1;
-                   const double tmp_q_11 = Dummy_3984*tmp_q_1;
-                   const double tmp_q_12 = Dummy_3987*tmp_q_1;
-                   const double tmp_q_13 = Dummy_3988*_data_q_w[q];
-                   const double res_tmp_0_0 = tmp_q_13*(Dummy_3989*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3990*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3991*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                   const double res_tmp_0_1 = tmp_q_13*(Dummy_3989*tmp_q_2 + Dummy_3990*tmp_q_6 + Dummy_3991*tmp_q_10);
-                   const double res_tmp_0_2 = tmp_q_13*(Dummy_3989*tmp_q_3 + Dummy_3990*tmp_q_7 + Dummy_3991*tmp_q_11);
-                   const double res_tmp_0_3 = tmp_q_13*(Dummy_3989*tmp_q_4 + Dummy_3990*tmp_q_8 + Dummy_3991*tmp_q_12);
-                   const double res_tmp_1_1 = tmp_q_13*((Dummy_3979*Dummy_3979)*tmp_q_1 + (Dummy_3980*Dummy_3980)*tmp_q_1 + (Dummy_3981*Dummy_3981)*tmp_q_1);
-                   const double res_tmp_1_2 = tmp_q_13*(Dummy_3982*tmp_q_2 + Dummy_3983*tmp_q_6 + Dummy_3984*tmp_q_10);
-                   const double res_tmp_1_3 = tmp_q_13*(Dummy_3985*tmp_q_2 + Dummy_3986*tmp_q_6 + Dummy_3987*tmp_q_10);
-                   const double res_tmp_2_2 = tmp_q_13*((Dummy_3982*Dummy_3982)*tmp_q_1 + (Dummy_3983*Dummy_3983)*tmp_q_1 + (Dummy_3984*Dummy_3984)*tmp_q_1);
-                   const double res_tmp_2_3 = tmp_q_13*(Dummy_3985*tmp_q_3 + Dummy_3986*tmp_q_7 + Dummy_3987*tmp_q_11);
-                   const double res_tmp_3_3 = tmp_q_13*((Dummy_3985*Dummy_3985)*tmp_q_1 + (Dummy_3986*Dummy_3986)*tmp_q_1 + (Dummy_3987*Dummy_3987)*tmp_q_1);
+                   const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                   const double tmp_q_1 = Dummy_3974*_data_q_w[q];
+                   const double res_tmp_0_0 = tmp_q_1*((-Dummy_3965 - Dummy_3968 - Dummy_3971)*(-Dummy_3965*tmp_q_0 - Dummy_3968*tmp_q_0 - Dummy_3971*tmp_q_0) + (-Dummy_3966 - Dummy_3969 - Dummy_3972)*(-Dummy_3966*tmp_q_0 - Dummy_3969*tmp_q_0 - Dummy_3972*tmp_q_0) + (-Dummy_3967 - Dummy_3970 - Dummy_3973)*(-Dummy_3967*tmp_q_0 - Dummy_3970*tmp_q_0 - Dummy_3973*tmp_q_0));
+                   const double res_tmp_1_1 = tmp_q_1*((Dummy_3965*Dummy_3965)*tmp_q_0 + (Dummy_3966*Dummy_3966)*tmp_q_0 + (Dummy_3967*Dummy_3967)*tmp_q_0);
+                   const double res_tmp_2_2 = tmp_q_1*((Dummy_3968*Dummy_3968)*tmp_q_0 + (Dummy_3969*Dummy_3969)*tmp_q_0 + (Dummy_3970*Dummy_3970)*tmp_q_0);
+                   const double res_tmp_3_3 = tmp_q_1*((Dummy_3971*Dummy_3971)*tmp_q_0 + (Dummy_3972*Dummy_3972)*tmp_q_0 + (Dummy_3973*Dummy_3973)*tmp_q_0);
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_2D.cpp b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_2D.cpp
index 16667ef12a1fadde8ec77a7081320a1d32ab6047..7019fd2db19aa1246bd12ecf01add14ef767083d 100644
--- a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_2D.cpp
+++ b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float, int64_t micro_edges_per_macro_face ) const
+void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,21 +78,21 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double Dummy_4018 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4019 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4020 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4021 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4022 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4023 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4024 = -Dummy_4018 + Dummy_4020;
-       const double Dummy_4025 = -Dummy_4018 + Dummy_4022;
-       const double Dummy_4026 = -Dummy_4019 + Dummy_4021;
-       const double Dummy_4027 = -Dummy_4019 + Dummy_4023;
-       const double Dummy_4028 = Dummy_4027*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4029 = -Dummy_4025*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4030 = -Dummy_4026*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4031 = Dummy_4024*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4032 = fabs(Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
+       const double Dummy_4001 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4002 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4003 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4004 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4005 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4006 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4007 = -Dummy_4001 + Dummy_4003;
+       const double Dummy_4008 = -Dummy_4001 + Dummy_4005;
+       const double Dummy_4009 = -Dummy_4002 + Dummy_4004;
+       const double Dummy_4010 = -Dummy_4002 + Dummy_4006;
+       const double Dummy_4011 = Dummy_4010*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4012 = -Dummy_4008*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4013 = -Dummy_4009*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4014 = Dummy_4007*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4015 = fabs(Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           {
@@ -101,15 +101,15 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_0 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d src_dof_3 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d src_dof_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d src_dof_3 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d src_dof_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
                 const __m256d src_dof_5 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -248,8 +248,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 _mm256_storeu_pd(&_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_0,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])));
                 _mm256_storeu_pd(&_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(elMatVec_1,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
                 _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatVec_2,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
-                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_3,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
-                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_4,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatVec_3,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatVec_4,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
                 _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_5,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
@@ -257,15 +257,15 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
                 const double src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double src_dof_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double src_dof_3 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double src_dof_3 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -404,8 +404,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
                 _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
              }
           }
@@ -417,14 +417,14 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_1 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d src_dof_2 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
                 const __m256d src_dof_3 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d src_dof_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
-                const __m256d src_dof_5 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
-                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d src_dof_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]);
+                const __m256d src_dof_5 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]);
+                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -451,8 +451,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_0 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
                    const __m256d tmp_q_1 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_2 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_1);
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030));
+                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011));
+                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013));
                    const __m256d tmp_q_5 = _mm256_add_pd(tmp_q_3,tmp_q_4);
                    const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_7 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
@@ -460,54 +460,54 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_9 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_9,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_11 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_8)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_10))),_mm256_mul_pd(k_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_0))),_mm256_mul_pd(k_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_1))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_10),tmp_q_6),tmp_q_8))),_mm256_mul_pd(k_dof_3,tmp_q_6));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014));
                    const __m256d tmp_q_14 = _mm256_add_pd(tmp_q_12,tmp_q_13);
-                   const double tmp_q_15 = Dummy_4032*_data_q_w[q];
+                   const double tmp_q_15 = Dummy_4015*_data_q_w[q];
                    const __m256d tmp_q_16 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028));
+                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011));
                    const __m256d tmp_q_18 = _mm256_mul_pd(tmp_q_11,tmp_q_5);
-                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012));
                    const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_11,tmp_q_14);
                    const __m256d tmp_q_21 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030));
-                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031));
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011));
                    const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_11,tmp_q_24);
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013));
                    const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_11,tmp_q_26);
                    const __m256d tmp_q_28 = _mm256_add_pd(tmp_q_25,tmp_q_27);
-                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012));
                    const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_11,tmp_q_29);
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014));
                    const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_11,tmp_q_31);
                    const __m256d tmp_q_33 = _mm256_add_pd(tmp_q_30,tmp_q_32);
                    const __m256d tmp_q_34 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_35 = _mm256_add_pd(_mm256_mul_pd(tmp_q_25,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030)));
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031)));
+                   const __m256d tmp_q_35 = _mm256_add_pd(_mm256_mul_pd(tmp_q_25,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013)));
+                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014)));
                    const __m256d tmp_q_37 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011));
                    const __m256d tmp_q_39 = _mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_38));
-                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012));
                    const __m256d tmp_q_41 = _mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_40));
                    const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_16,tmp_q_16));
                    const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_21,tmp_q_21));
                    const __m256d tmp_q_44 = _mm256_add_pd(tmp_q_24,tmp_q_26);
                    const __m256d tmp_q_45 = _mm256_add_pd(tmp_q_29,tmp_q_31);
-                   const __m256d tmp_q_46 = _mm256_add_pd(_mm256_mul_pd(tmp_q_24,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030)));
-                   const __m256d tmp_q_47 = _mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031)));
+                   const __m256d tmp_q_46 = _mm256_add_pd(_mm256_mul_pd(tmp_q_24,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013)));
+                   const __m256d tmp_q_47 = _mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_12),_mm256_mul_pd(tmp_q_11,tmp_q_13))),_mm256_mul_pd(tmp_q_5,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_3),_mm256_mul_pd(tmp_q_11,tmp_q_4)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_18),_mm256_mul_pd(tmp_q_19,tmp_q_20)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_20,tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_33),_mm256_mul_pd(tmp_q_28,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_36),_mm256_mul_pd(tmp_q_35,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_41),_mm256_mul_pd(tmp_q_39,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028),_mm256_set_pd(Dummy_4028,Dummy_4028,Dummy_4028,Dummy_4028))),_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029),_mm256_set_pd(Dummy_4029,Dummy_4029,Dummy_4029,Dummy_4029)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011),_mm256_set_pd(Dummy_4011,Dummy_4011,Dummy_4011,Dummy_4011))),_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012),_mm256_set_pd(Dummy_4012,Dummy_4012,Dummy_4012,Dummy_4012)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_17),tmp_q_22),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_19),tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_28),_mm256_mul_pd(tmp_q_19,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_35),_mm256_mul_pd(tmp_q_19,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_39),_mm256_mul_pd(tmp_q_19,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030),_mm256_set_pd(Dummy_4030,Dummy_4030,Dummy_4030,Dummy_4030))),_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031),_mm256_set_pd(Dummy_4031,Dummy_4031,Dummy_4031,Dummy_4031)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013),_mm256_set_pd(Dummy_4013,Dummy_4013,Dummy_4013,Dummy_4013))),_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014),_mm256_set_pd(Dummy_4014,Dummy_4014,Dummy_4014,Dummy_4014)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_28),_mm256_mul_pd(tmp_q_23,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_35),_mm256_mul_pd(tmp_q_23,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_39),_mm256_mul_pd(tmp_q_23,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
@@ -564,8 +564,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatVec_1,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
                 _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1],_mm256_add_pd(elMatVec_2,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])));
                 _mm256_storeu_pd(&_data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatVec_3,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
-                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(elMatVec_4,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
-                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_5,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1],_mm256_add_pd(elMatVec_4,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])));
+                _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatVec_5,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
@@ -573,14 +573,14 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_1 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double src_dof_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 const double src_dof_3 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-                const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -607,8 +607,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_0 = 4.0*_data_q_p_0[q];
                    const double tmp_q_1 = 4.0*_data_q_p_1[q];
                    const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
-                   const double tmp_q_3 = Dummy_4028*tmp_q_2;
-                   const double tmp_q_4 = Dummy_4030*tmp_q_2;
+                   const double tmp_q_3 = Dummy_4011*tmp_q_2;
+                   const double tmp_q_4 = Dummy_4013*tmp_q_2;
                    const double tmp_q_5 = tmp_q_3 + tmp_q_4;
                    const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
                    const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
@@ -616,54 +616,54 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
                    const double tmp_q_10 = tmp_q_9*2.0;
                    const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                   const double tmp_q_12 = Dummy_4029*tmp_q_2;
-                   const double tmp_q_13 = Dummy_4031*tmp_q_2;
+                   const double tmp_q_12 = Dummy_4012*tmp_q_2;
+                   const double tmp_q_13 = Dummy_4014*tmp_q_2;
                    const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                   const double tmp_q_15 = Dummy_4032*_data_q_w[q];
+                   const double tmp_q_15 = Dummy_4015*_data_q_w[q];
                    const double tmp_q_16 = tmp_q_0 - 1.0;
-                   const double tmp_q_17 = Dummy_4028*tmp_q_16;
+                   const double tmp_q_17 = Dummy_4011*tmp_q_16;
                    const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                   const double tmp_q_19 = Dummy_4029*tmp_q_16;
+                   const double tmp_q_19 = Dummy_4012*tmp_q_16;
                    const double tmp_q_20 = tmp_q_11*tmp_q_14;
                    const double tmp_q_21 = tmp_q_1 - 1.0;
-                   const double tmp_q_22 = Dummy_4030*tmp_q_21;
-                   const double tmp_q_23 = Dummy_4031*tmp_q_21;
-                   const double tmp_q_24 = Dummy_4028*tmp_q_1;
+                   const double tmp_q_22 = Dummy_4013*tmp_q_21;
+                   const double tmp_q_23 = Dummy_4014*tmp_q_21;
+                   const double tmp_q_24 = Dummy_4011*tmp_q_1;
                    const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                   const double tmp_q_26 = Dummy_4030*tmp_q_0;
+                   const double tmp_q_26 = Dummy_4013*tmp_q_0;
                    const double tmp_q_27 = tmp_q_11*tmp_q_26;
                    const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                   const double tmp_q_29 = Dummy_4029*tmp_q_1;
+                   const double tmp_q_29 = Dummy_4012*tmp_q_1;
                    const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                   const double tmp_q_31 = Dummy_4031*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4014*tmp_q_0;
                    const double tmp_q_32 = tmp_q_11*tmp_q_31;
                    const double tmp_q_33 = tmp_q_30 + tmp_q_32;
                    const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                   const double tmp_q_35 = Dummy_4030*tmp_q_11*tmp_q_34 - tmp_q_25;
-                   const double tmp_q_36 = Dummy_4031*tmp_q_11*tmp_q_34 - tmp_q_30;
+                   const double tmp_q_35 = Dummy_4013*tmp_q_11*tmp_q_34 - tmp_q_25;
+                   const double tmp_q_36 = Dummy_4014*tmp_q_11*tmp_q_34 - tmp_q_30;
                    const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                   const double tmp_q_38 = Dummy_4028*tmp_q_37;
+                   const double tmp_q_38 = Dummy_4011*tmp_q_37;
                    const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                   const double tmp_q_40 = Dummy_4029*tmp_q_37;
+                   const double tmp_q_40 = Dummy_4012*tmp_q_37;
                    const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
                    const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
                    const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
                    const double tmp_q_44 = tmp_q_24 + tmp_q_26;
                    const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                   const double tmp_q_46 = Dummy_4030*tmp_q_34 - tmp_q_24;
-                   const double tmp_q_47 = Dummy_4031*tmp_q_34 - tmp_q_29;
+                   const double tmp_q_46 = Dummy_4013*tmp_q_34 - tmp_q_24;
+                   const double tmp_q_47 = Dummy_4014*tmp_q_34 - tmp_q_29;
                    const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
                    const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
                    const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
                    const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
                    const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
                    const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                   const double res_tmp_1_1 = tmp_q_15*((Dummy_4028*Dummy_4028)*tmp_q_42 + (Dummy_4029*Dummy_4029)*tmp_q_42);
+                   const double res_tmp_1_1 = tmp_q_15*((Dummy_4011*Dummy_4011)*tmp_q_42 + (Dummy_4012*Dummy_4012)*tmp_q_42);
                    const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
                    const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
                    const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
                    const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                   const double res_tmp_2_2 = tmp_q_15*((Dummy_4030*Dummy_4030)*tmp_q_43 + (Dummy_4031*Dummy_4031)*tmp_q_43);
+                   const double res_tmp_2_2 = tmp_q_15*((Dummy_4013*Dummy_4013)*tmp_q_43 + (Dummy_4014*Dummy_4014)*tmp_q_43);
                    const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
                    const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
                    const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
@@ -720,8 +720,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              }
           }
        }
diff --git a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_3D.cpp b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_3D.cpp
index e3bba9df17e2cc01bdb6c82eda6ce6b65a2e849c..0919fd25a5e835cf4e051d349badcf56f17adf2e 100644
--- a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_3D.cpp
+++ b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_apply_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,161 +96,161 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double Dummy_4141 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4142 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4143 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4144 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4145 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4146 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4147 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4148 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4149 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4150 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4151 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4152 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4153 = -Dummy_4141 + Dummy_4144;
-       const double Dummy_4154 = -Dummy_4141 + Dummy_4147;
-       const double Dummy_4155 = -Dummy_4141 + Dummy_4150;
-       const double Dummy_4156 = -Dummy_4142 + Dummy_4145;
-       const double Dummy_4157 = -Dummy_4142 + Dummy_4148;
-       const double Dummy_4158 = -Dummy_4142 + Dummy_4151;
-       const double Dummy_4159 = -Dummy_4143 + Dummy_4146;
-       const double Dummy_4160 = -Dummy_4143 + Dummy_4149;
-       const double Dummy_4161 = -Dummy_4143 + Dummy_4152;
-       const double Dummy_4162 = (Dummy_4157*Dummy_4161 - Dummy_4158*Dummy_4160)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4163 = (-Dummy_4154*Dummy_4161 + Dummy_4155*Dummy_4160)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4164 = (Dummy_4154*Dummy_4158 - Dummy_4155*Dummy_4157)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4165 = (-Dummy_4156*Dummy_4161 + Dummy_4158*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4166 = (Dummy_4153*Dummy_4161 - Dummy_4155*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4167 = (-Dummy_4153*Dummy_4158 + Dummy_4155*Dummy_4156)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4168 = (Dummy_4156*Dummy_4160 - Dummy_4157*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4169 = (-Dummy_4153*Dummy_4160 + Dummy_4154*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4170 = (Dummy_4153*Dummy_4157 - Dummy_4154*Dummy_4156)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4171 = fabs(Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4172 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4173 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4174 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4175 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4176 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4177 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4178 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4179 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4180 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4181 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4182 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4183 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4184 = -Dummy_4172 + Dummy_4175;
-       const double Dummy_4185 = -Dummy_4172 + Dummy_4178;
-       const double Dummy_4186 = -Dummy_4172 + Dummy_4181;
-       const double Dummy_4187 = -Dummy_4173 + Dummy_4176;
-       const double Dummy_4188 = -Dummy_4173 + Dummy_4179;
-       const double Dummy_4189 = -Dummy_4173 + Dummy_4182;
-       const double Dummy_4190 = -Dummy_4174 + Dummy_4177;
-       const double Dummy_4191 = -Dummy_4174 + Dummy_4180;
-       const double Dummy_4192 = -Dummy_4174 + Dummy_4183;
-       const double Dummy_4193 = (Dummy_4188*Dummy_4192 - Dummy_4189*Dummy_4191)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4194 = (-Dummy_4185*Dummy_4192 + Dummy_4186*Dummy_4191)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4195 = (Dummy_4185*Dummy_4189 - Dummy_4186*Dummy_4188)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4196 = (-Dummy_4187*Dummy_4192 + Dummy_4189*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4197 = (Dummy_4184*Dummy_4192 - Dummy_4186*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4198 = (-Dummy_4184*Dummy_4189 + Dummy_4186*Dummy_4187)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4199 = (Dummy_4187*Dummy_4191 - Dummy_4188*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4200 = (-Dummy_4184*Dummy_4191 + Dummy_4185*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4201 = (Dummy_4184*Dummy_4188 - Dummy_4185*Dummy_4187)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4202 = fabs(Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4203 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4204 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4205 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4206 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4207 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4208 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4209 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4210 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4211 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4212 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4213 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4214 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4215 = -Dummy_4203 + Dummy_4206;
-       const double Dummy_4216 = -Dummy_4203 + Dummy_4209;
-       const double Dummy_4217 = -Dummy_4203 + Dummy_4212;
-       const double Dummy_4218 = -Dummy_4204 + Dummy_4207;
-       const double Dummy_4219 = -Dummy_4204 + Dummy_4210;
-       const double Dummy_4220 = -Dummy_4204 + Dummy_4213;
-       const double Dummy_4221 = -Dummy_4205 + Dummy_4208;
-       const double Dummy_4222 = -Dummy_4205 + Dummy_4211;
-       const double Dummy_4223 = -Dummy_4205 + Dummy_4214;
-       const double Dummy_4224 = (Dummy_4219*Dummy_4223 - Dummy_4220*Dummy_4222)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4225 = (-Dummy_4216*Dummy_4223 + Dummy_4217*Dummy_4222)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4226 = (Dummy_4216*Dummy_4220 - Dummy_4217*Dummy_4219)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4227 = (-Dummy_4218*Dummy_4223 + Dummy_4220*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4228 = (Dummy_4215*Dummy_4223 - Dummy_4217*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4229 = (-Dummy_4215*Dummy_4220 + Dummy_4217*Dummy_4218)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4230 = (Dummy_4218*Dummy_4222 - Dummy_4219*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4231 = (-Dummy_4215*Dummy_4222 + Dummy_4216*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4232 = (Dummy_4215*Dummy_4219 - Dummy_4216*Dummy_4218)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4233 = fabs(Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4234 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4235 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4236 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4237 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4238 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4239 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4240 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4241 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4242 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4243 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4244 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4245 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4246 = -Dummy_4234 + Dummy_4237;
-       const double Dummy_4247 = -Dummy_4234 + Dummy_4240;
-       const double Dummy_4248 = -Dummy_4234 + Dummy_4243;
-       const double Dummy_4249 = -Dummy_4235 + Dummy_4238;
-       const double Dummy_4250 = -Dummy_4235 + Dummy_4241;
-       const double Dummy_4251 = -Dummy_4235 + Dummy_4244;
-       const double Dummy_4252 = -Dummy_4236 + Dummy_4239;
-       const double Dummy_4253 = -Dummy_4236 + Dummy_4242;
-       const double Dummy_4254 = -Dummy_4236 + Dummy_4245;
-       const double Dummy_4255 = (Dummy_4250*Dummy_4254 - Dummy_4251*Dummy_4253)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4256 = (-Dummy_4247*Dummy_4254 + Dummy_4248*Dummy_4253)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4257 = (Dummy_4247*Dummy_4251 - Dummy_4248*Dummy_4250)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4258 = (-Dummy_4249*Dummy_4254 + Dummy_4251*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4259 = (Dummy_4246*Dummy_4254 - Dummy_4248*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4260 = (-Dummy_4246*Dummy_4251 + Dummy_4248*Dummy_4249)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4261 = (Dummy_4249*Dummy_4253 - Dummy_4250*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4262 = (-Dummy_4246*Dummy_4253 + Dummy_4247*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4263 = (Dummy_4246*Dummy_4250 - Dummy_4247*Dummy_4249)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4264 = fabs(Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4265 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4266 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4267 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4268 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4269 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4270 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4271 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4272 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4273 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4274 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4275 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4276 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4277 = -Dummy_4265 + Dummy_4268;
-       const double Dummy_4278 = -Dummy_4265 + Dummy_4271;
-       const double Dummy_4279 = -Dummy_4265 + Dummy_4274;
-       const double Dummy_4280 = -Dummy_4266 + Dummy_4269;
-       const double Dummy_4281 = -Dummy_4266 + Dummy_4272;
-       const double Dummy_4282 = -Dummy_4266 + Dummy_4275;
-       const double Dummy_4283 = -Dummy_4267 + Dummy_4270;
-       const double Dummy_4284 = -Dummy_4267 + Dummy_4273;
-       const double Dummy_4285 = -Dummy_4267 + Dummy_4276;
-       const double Dummy_4286 = (Dummy_4281*Dummy_4285 - Dummy_4282*Dummy_4284)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4287 = (-Dummy_4278*Dummy_4285 + Dummy_4279*Dummy_4284)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4288 = (Dummy_4278*Dummy_4282 - Dummy_4279*Dummy_4281)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4289 = (-Dummy_4280*Dummy_4285 + Dummy_4282*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4290 = (Dummy_4277*Dummy_4285 - Dummy_4279*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4291 = (-Dummy_4277*Dummy_4282 + Dummy_4279*Dummy_4280)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4292 = (Dummy_4280*Dummy_4284 - Dummy_4281*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4293 = (-Dummy_4277*Dummy_4284 + Dummy_4278*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4294 = (Dummy_4277*Dummy_4281 - Dummy_4278*Dummy_4280)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4295 = fabs(Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
+       const double Dummy_4124 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4125 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4126 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4127 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4128 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4129 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4130 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4131 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4132 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4133 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4134 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4135 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4136 = -Dummy_4124 + Dummy_4127;
+       const double Dummy_4137 = -Dummy_4124 + Dummy_4130;
+       const double Dummy_4138 = -Dummy_4124 + Dummy_4133;
+       const double Dummy_4139 = -Dummy_4125 + Dummy_4128;
+       const double Dummy_4140 = -Dummy_4125 + Dummy_4131;
+       const double Dummy_4141 = -Dummy_4125 + Dummy_4134;
+       const double Dummy_4142 = -Dummy_4126 + Dummy_4129;
+       const double Dummy_4143 = -Dummy_4126 + Dummy_4132;
+       const double Dummy_4144 = -Dummy_4126 + Dummy_4135;
+       const double Dummy_4145 = (Dummy_4140*Dummy_4144 - Dummy_4141*Dummy_4143)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4146 = (-Dummy_4137*Dummy_4144 + Dummy_4138*Dummy_4143)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4147 = (Dummy_4137*Dummy_4141 - Dummy_4138*Dummy_4140)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4148 = (-Dummy_4139*Dummy_4144 + Dummy_4141*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4149 = (Dummy_4136*Dummy_4144 - Dummy_4138*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4150 = (-Dummy_4136*Dummy_4141 + Dummy_4138*Dummy_4139)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4151 = (Dummy_4139*Dummy_4143 - Dummy_4140*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4152 = (-Dummy_4136*Dummy_4143 + Dummy_4137*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4153 = (Dummy_4136*Dummy_4140 - Dummy_4137*Dummy_4139)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4154 = fabs(Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4155 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4156 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4157 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4158 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4159 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4160 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4161 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4162 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4163 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4164 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4165 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4166 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4167 = -Dummy_4155 + Dummy_4158;
+       const double Dummy_4168 = -Dummy_4155 + Dummy_4161;
+       const double Dummy_4169 = -Dummy_4155 + Dummy_4164;
+       const double Dummy_4170 = -Dummy_4156 + Dummy_4159;
+       const double Dummy_4171 = -Dummy_4156 + Dummy_4162;
+       const double Dummy_4172 = -Dummy_4156 + Dummy_4165;
+       const double Dummy_4173 = -Dummy_4157 + Dummy_4160;
+       const double Dummy_4174 = -Dummy_4157 + Dummy_4163;
+       const double Dummy_4175 = -Dummy_4157 + Dummy_4166;
+       const double Dummy_4176 = (Dummy_4171*Dummy_4175 - Dummy_4172*Dummy_4174)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4177 = (-Dummy_4168*Dummy_4175 + Dummy_4169*Dummy_4174)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4178 = (Dummy_4168*Dummy_4172 - Dummy_4169*Dummy_4171)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4179 = (-Dummy_4170*Dummy_4175 + Dummy_4172*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4180 = (Dummy_4167*Dummy_4175 - Dummy_4169*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4181 = (-Dummy_4167*Dummy_4172 + Dummy_4169*Dummy_4170)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4182 = (Dummy_4170*Dummy_4174 - Dummy_4171*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4183 = (-Dummy_4167*Dummy_4174 + Dummy_4168*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4184 = (Dummy_4167*Dummy_4171 - Dummy_4168*Dummy_4170)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4185 = fabs(Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4186 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4187 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4188 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4189 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4190 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4191 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4192 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4193 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4194 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4195 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4196 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4197 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4198 = -Dummy_4186 + Dummy_4189;
+       const double Dummy_4199 = -Dummy_4186 + Dummy_4192;
+       const double Dummy_4200 = -Dummy_4186 + Dummy_4195;
+       const double Dummy_4201 = -Dummy_4187 + Dummy_4190;
+       const double Dummy_4202 = -Dummy_4187 + Dummy_4193;
+       const double Dummy_4203 = -Dummy_4187 + Dummy_4196;
+       const double Dummy_4204 = -Dummy_4188 + Dummy_4191;
+       const double Dummy_4205 = -Dummy_4188 + Dummy_4194;
+       const double Dummy_4206 = -Dummy_4188 + Dummy_4197;
+       const double Dummy_4207 = (Dummy_4202*Dummy_4206 - Dummy_4203*Dummy_4205)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4208 = (-Dummy_4199*Dummy_4206 + Dummy_4200*Dummy_4205)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4209 = (Dummy_4199*Dummy_4203 - Dummy_4200*Dummy_4202)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4210 = (-Dummy_4201*Dummy_4206 + Dummy_4203*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4211 = (Dummy_4198*Dummy_4206 - Dummy_4200*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4212 = (-Dummy_4198*Dummy_4203 + Dummy_4200*Dummy_4201)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4213 = (Dummy_4201*Dummy_4205 - Dummy_4202*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4214 = (-Dummy_4198*Dummy_4205 + Dummy_4199*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4215 = (Dummy_4198*Dummy_4202 - Dummy_4199*Dummy_4201)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4216 = fabs(Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4217 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4218 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4219 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4220 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4221 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4222 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4223 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4224 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4225 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4226 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4227 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4228 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4229 = -Dummy_4217 + Dummy_4220;
+       const double Dummy_4230 = -Dummy_4217 + Dummy_4223;
+       const double Dummy_4231 = -Dummy_4217 + Dummy_4226;
+       const double Dummy_4232 = -Dummy_4218 + Dummy_4221;
+       const double Dummy_4233 = -Dummy_4218 + Dummy_4224;
+       const double Dummy_4234 = -Dummy_4218 + Dummy_4227;
+       const double Dummy_4235 = -Dummy_4219 + Dummy_4222;
+       const double Dummy_4236 = -Dummy_4219 + Dummy_4225;
+       const double Dummy_4237 = -Dummy_4219 + Dummy_4228;
+       const double Dummy_4238 = (Dummy_4233*Dummy_4237 - Dummy_4234*Dummy_4236)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4239 = (-Dummy_4230*Dummy_4237 + Dummy_4231*Dummy_4236)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4240 = (Dummy_4230*Dummy_4234 - Dummy_4231*Dummy_4233)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4241 = (-Dummy_4232*Dummy_4237 + Dummy_4234*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4242 = (Dummy_4229*Dummy_4237 - Dummy_4231*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4243 = (-Dummy_4229*Dummy_4234 + Dummy_4231*Dummy_4232)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4244 = (Dummy_4232*Dummy_4236 - Dummy_4233*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4245 = (-Dummy_4229*Dummy_4236 + Dummy_4230*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4246 = (Dummy_4229*Dummy_4233 - Dummy_4230*Dummy_4232)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4247 = fabs(Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4248 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4249 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4250 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4251 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4252 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4253 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4254 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4255 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4256 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4257 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4258 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4259 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4260 = -Dummy_4248 + Dummy_4251;
+       const double Dummy_4261 = -Dummy_4248 + Dummy_4254;
+       const double Dummy_4262 = -Dummy_4248 + Dummy_4257;
+       const double Dummy_4263 = -Dummy_4249 + Dummy_4252;
+       const double Dummy_4264 = -Dummy_4249 + Dummy_4255;
+       const double Dummy_4265 = -Dummy_4249 + Dummy_4258;
+       const double Dummy_4266 = -Dummy_4250 + Dummy_4253;
+       const double Dummy_4267 = -Dummy_4250 + Dummy_4256;
+       const double Dummy_4268 = -Dummy_4250 + Dummy_4259;
+       const double Dummy_4269 = (Dummy_4264*Dummy_4268 - Dummy_4265*Dummy_4267)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4270 = (-Dummy_4261*Dummy_4268 + Dummy_4262*Dummy_4267)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4271 = (Dummy_4261*Dummy_4265 - Dummy_4262*Dummy_4264)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4272 = (-Dummy_4263*Dummy_4268 + Dummy_4265*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4273 = (Dummy_4260*Dummy_4268 - Dummy_4262*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4274 = (-Dummy_4260*Dummy_4265 + Dummy_4262*Dummy_4263)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4275 = (Dummy_4263*Dummy_4267 - Dummy_4264*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4276 = (-Dummy_4260*Dummy_4267 + Dummy_4261*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4277 = (Dummy_4260*Dummy_4264 - Dummy_4261*Dummy_4263)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4278 = fabs(Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
@@ -268,15 +268,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -648,15 +648,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -1032,15 +1032,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -1103,9 +1103,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151));
                    const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
                    const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
@@ -1118,88 +1118,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
                    const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152));
                    const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147));
+                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153));
                    const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4171*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4154*_data_q_w[q];
                    const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145));
                    const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146));
                    const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164));
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147));
                    const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
                    const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167));
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150));
                    const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165));
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151));
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148));
                    const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168));
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151));
                    const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
                    const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166));
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149));
                    const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152));
                    const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
                    const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167));
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150));
                    const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153));
                    const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
                    const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145));
                    const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168));
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151));
                    const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
                    const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146));
                    const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169));
+                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152));
                    const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
                    const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164));
+                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147));
                    const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170));
+                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153));
                    const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
                    const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162));
+                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145));
                    const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165));
+                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148));
                    const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
                    const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163));
+                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146));
                    const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166));
+                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149));
                    const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
                    const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164));
+                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147));
                    const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167));
+                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150));
                    const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
                    const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
                    const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170)));
+                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151)));
+                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152)));
+                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153)));
                    const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
                    const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167)));
+                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148)));
+                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149)));
+                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150)));
                    const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164)));
+                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145)));
+                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146)));
+                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147)));
                    const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
                    const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
                    const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
@@ -1216,12 +1216,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
                    const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
                    const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167)));
+                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151)));
+                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152)));
+                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153)));
+                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148)));
+                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149)));
+                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -1232,7 +1232,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162),_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163),_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164),_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145),_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146),_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147),_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -1241,7 +1241,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165),_mm256_set_pd(Dummy_4165,Dummy_4165,Dummy_4165,Dummy_4165))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166),_mm256_set_pd(Dummy_4166,Dummy_4166,Dummy_4166,Dummy_4166)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167),_mm256_set_pd(Dummy_4167,Dummy_4167,Dummy_4167,Dummy_4167)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148),_mm256_set_pd(Dummy_4148,Dummy_4148,Dummy_4148,Dummy_4148))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149),_mm256_set_pd(Dummy_4149,Dummy_4149,Dummy_4149,Dummy_4149)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150),_mm256_set_pd(Dummy_4150,Dummy_4150,Dummy_4150,Dummy_4150)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -1249,7 +1249,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168),_mm256_set_pd(Dummy_4168,Dummy_4168,Dummy_4168,Dummy_4168))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169),_mm256_set_pd(Dummy_4169,Dummy_4169,Dummy_4169,Dummy_4169)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170),_mm256_set_pd(Dummy_4170,Dummy_4170,Dummy_4170,Dummy_4170)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151),_mm256_set_pd(Dummy_4151,Dummy_4151,Dummy_4151,Dummy_4151))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152),_mm256_set_pd(Dummy_4152,Dummy_4152,Dummy_4152,Dummy_4152)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153),_mm256_set_pd(Dummy_4153,Dummy_4153,Dummy_4153,Dummy_4153)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -1276,7 +1276,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4162,Dummy_4162,Dummy_4162,Dummy_4162)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4163,Dummy_4163,Dummy_4163,Dummy_4163))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4164,Dummy_4164,Dummy_4164,Dummy_4164))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4145,Dummy_4145,Dummy_4145,Dummy_4145)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4146,Dummy_4146,Dummy_4146,Dummy_4146))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4147,Dummy_4147,Dummy_4147,Dummy_4147))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
                    q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
                    q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
@@ -1412,15 +1412,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
                 const double k_dof_4 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -1483,9 +1483,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4162*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4165*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4168*tmp_q_4;
+                   const double tmp_q_5 = Dummy_4145*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4148*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4151*tmp_q_4;
                    const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                    const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                    const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -1498,88 +1498,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_17 = tmp_q_16*2.0;
                    const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                    const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4163*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4166*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4169*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4146*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4149*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4152*tmp_q_4;
                    const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4164*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4167*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4170*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4147*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4150*tmp_q_4;
+                   const double tmp_q_26 = Dummy_4153*tmp_q_4;
                    const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4171*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4154*_data_q_w[q];
                    const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4162*tmp_q_29;
+                   const double tmp_q_30 = Dummy_4145*tmp_q_29;
                    const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4163*tmp_q_29;
+                   const double tmp_q_32 = Dummy_4146*tmp_q_29;
                    const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4164*tmp_q_29;
+                   const double tmp_q_34 = Dummy_4147*tmp_q_29;
                    const double tmp_q_35 = tmp_q_19*tmp_q_27;
                    const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4165*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4166*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4167*tmp_q_36;
+                   const double tmp_q_37 = Dummy_4148*tmp_q_36;
+                   const double tmp_q_38 = Dummy_4149*tmp_q_36;
+                   const double tmp_q_39 = Dummy_4150*tmp_q_36;
                    const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4168*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4169*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4170*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4165*tmp_q_0;
+                   const double tmp_q_41 = Dummy_4151*tmp_q_40;
+                   const double tmp_q_42 = Dummy_4152*tmp_q_40;
+                   const double tmp_q_43 = Dummy_4153*tmp_q_40;
+                   const double tmp_q_44 = Dummy_4148*tmp_q_0;
                    const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4168*tmp_q_2;
+                   const double tmp_q_46 = Dummy_4151*tmp_q_2;
                    const double tmp_q_47 = tmp_q_19*tmp_q_46;
                    const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4166*tmp_q_0;
+                   const double tmp_q_49 = Dummy_4149*tmp_q_0;
                    const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4169*tmp_q_2;
+                   const double tmp_q_51 = Dummy_4152*tmp_q_2;
                    const double tmp_q_52 = tmp_q_19*tmp_q_51;
                    const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4167*tmp_q_0;
+                   const double tmp_q_54 = Dummy_4150*tmp_q_0;
                    const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4170*tmp_q_2;
+                   const double tmp_q_56 = Dummy_4153*tmp_q_2;
                    const double tmp_q_57 = tmp_q_19*tmp_q_56;
                    const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4162*tmp_q_0;
+                   const double tmp_q_59 = Dummy_4145*tmp_q_0;
                    const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4168*tmp_q_1;
+                   const double tmp_q_61 = Dummy_4151*tmp_q_1;
                    const double tmp_q_62 = tmp_q_19*tmp_q_61;
                    const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4163*tmp_q_0;
+                   const double tmp_q_64 = Dummy_4146*tmp_q_0;
                    const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4169*tmp_q_1;
+                   const double tmp_q_66 = Dummy_4152*tmp_q_1;
                    const double tmp_q_67 = tmp_q_19*tmp_q_66;
                    const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4164*tmp_q_0;
+                   const double tmp_q_69 = Dummy_4147*tmp_q_0;
                    const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4170*tmp_q_1;
+                   const double tmp_q_71 = Dummy_4153*tmp_q_1;
                    const double tmp_q_72 = tmp_q_19*tmp_q_71;
                    const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4162*tmp_q_2;
+                   const double tmp_q_74 = Dummy_4145*tmp_q_2;
                    const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4165*tmp_q_1;
+                   const double tmp_q_76 = Dummy_4148*tmp_q_1;
                    const double tmp_q_77 = tmp_q_19*tmp_q_76;
                    const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4163*tmp_q_2;
+                   const double tmp_q_79 = Dummy_4146*tmp_q_2;
                    const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4166*tmp_q_1;
+                   const double tmp_q_81 = Dummy_4149*tmp_q_1;
                    const double tmp_q_82 = tmp_q_19*tmp_q_81;
                    const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4164*tmp_q_2;
+                   const double tmp_q_84 = Dummy_4147*tmp_q_2;
                    const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4167*tmp_q_1;
+                   const double tmp_q_86 = Dummy_4150*tmp_q_1;
                    const double tmp_q_87 = tmp_q_19*tmp_q_86;
                    const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                    const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4168*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4169*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4170*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                   const double tmp_q_90 = Dummy_4151*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                   const double tmp_q_91 = Dummy_4152*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                   const double tmp_q_92 = Dummy_4153*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                    const double tmp_q_93 = tmp_q_0 - 4.0;
                    const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4165*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4166*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4167*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                   const double tmp_q_95 = Dummy_4148*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                   const double tmp_q_96 = Dummy_4149*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                   const double tmp_q_97 = Dummy_4150*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                    const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4162*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4163*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4164*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                   const double tmp_q_99 = Dummy_4145*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                   const double tmp_q_100 = Dummy_4146*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                   const double tmp_q_101 = Dummy_4147*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                    const double tmp_q_102 = tmp_q_19*16.0;
                    const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                    const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1596,12 +1596,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                    const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                    const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4168*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4169*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4170*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4165*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4166*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4167*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                   const double tmp_q_118 = Dummy_4151*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                   const double tmp_q_119 = Dummy_4152*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                   const double tmp_q_120 = Dummy_4153*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                   const double tmp_q_121 = Dummy_4148*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                   const double tmp_q_122 = Dummy_4149*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                   const double tmp_q_123 = Dummy_4150*tmp_q_94 - tmp_q_56 - tmp_q_84;
                    const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                    const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                    const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1612,7 +1612,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                    const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                    const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4162*Dummy_4162)*tmp_q_103 + (Dummy_4163*Dummy_4163)*tmp_q_103 + (Dummy_4164*Dummy_4164)*tmp_q_103);
+                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4145*Dummy_4145)*tmp_q_103 + (Dummy_4146*Dummy_4146)*tmp_q_103 + (Dummy_4147*Dummy_4147)*tmp_q_103);
                    const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                    const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                    const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -1621,7 +1621,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                    const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                    const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4165*Dummy_4165)*tmp_q_107 + (Dummy_4166*Dummy_4166)*tmp_q_107 + (Dummy_4167*Dummy_4167)*tmp_q_107);
+                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4148*Dummy_4148)*tmp_q_107 + (Dummy_4149*Dummy_4149)*tmp_q_107 + (Dummy_4150*Dummy_4150)*tmp_q_107);
                    const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                    const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                    const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -1629,7 +1629,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                    const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                    const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4168*Dummy_4168)*tmp_q_108 + (Dummy_4169*Dummy_4169)*tmp_q_108 + (Dummy_4170*Dummy_4170)*tmp_q_108);
+                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4151*Dummy_4151)*tmp_q_108 + (Dummy_4152*Dummy_4152)*tmp_q_108 + (Dummy_4153*Dummy_4153)*tmp_q_108);
                    const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                    const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                    const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -1656,7 +1656,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                    const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                    const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4163*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4164*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4162*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4146*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4147*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4145*tmp_q_98 - tmp_q_61 - tmp_q_76));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                    q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                    q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1796,15 +1796,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -1867,9 +1867,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182));
                    const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
                    const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
@@ -1882,88 +1882,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
                    const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183));
                    const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178));
+                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184));
                    const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4202*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4185*_data_q_w[q];
                    const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176));
                    const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177));
                    const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195));
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178));
                    const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
                    const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198));
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181));
                    const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196));
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182));
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179));
                    const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199));
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182));
                    const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
                    const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197));
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180));
                    const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183));
                    const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
                    const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198));
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181));
                    const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184));
                    const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
                    const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176));
                    const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199));
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182));
                    const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
                    const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177));
                    const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200));
+                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183));
                    const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
                    const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195));
+                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178));
                    const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201));
+                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184));
                    const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
                    const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193));
+                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176));
                    const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196));
+                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179));
                    const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
                    const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194));
+                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177));
                    const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197));
+                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180));
                    const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
                    const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195));
+                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178));
                    const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198));
+                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181));
                    const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
                    const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
                    const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201)));
+                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182)));
+                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183)));
+                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184)));
                    const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
                    const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198)));
+                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179)));
+                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180)));
+                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181)));
                    const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195)));
+                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176)));
+                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177)));
+                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178)));
                    const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
                    const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
                    const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
@@ -1980,12 +1980,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
                    const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
                    const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198)));
+                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182)));
+                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183)));
+                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184)));
+                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179)));
+                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180)));
+                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -1996,7 +1996,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193),_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194),_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195),_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176),_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177),_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178),_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2005,7 +2005,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196),_mm256_set_pd(Dummy_4196,Dummy_4196,Dummy_4196,Dummy_4196))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197),_mm256_set_pd(Dummy_4197,Dummy_4197,Dummy_4197,Dummy_4197)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198),_mm256_set_pd(Dummy_4198,Dummy_4198,Dummy_4198,Dummy_4198)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179),_mm256_set_pd(Dummy_4179,Dummy_4179,Dummy_4179,Dummy_4179))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180),_mm256_set_pd(Dummy_4180,Dummy_4180,Dummy_4180,Dummy_4180)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181),_mm256_set_pd(Dummy_4181,Dummy_4181,Dummy_4181,Dummy_4181)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2013,7 +2013,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199),_mm256_set_pd(Dummy_4199,Dummy_4199,Dummy_4199,Dummy_4199))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200),_mm256_set_pd(Dummy_4200,Dummy_4200,Dummy_4200,Dummy_4200)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201),_mm256_set_pd(Dummy_4201,Dummy_4201,Dummy_4201,Dummy_4201)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182),_mm256_set_pd(Dummy_4182,Dummy_4182,Dummy_4182,Dummy_4182))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183),_mm256_set_pd(Dummy_4183,Dummy_4183,Dummy_4183,Dummy_4183)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184),_mm256_set_pd(Dummy_4184,Dummy_4184,Dummy_4184,Dummy_4184)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2040,7 +2040,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4193,Dummy_4193,Dummy_4193,Dummy_4193)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4194,Dummy_4194,Dummy_4194,Dummy_4194))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4195,Dummy_4195,Dummy_4195,Dummy_4195))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4176,Dummy_4176,Dummy_4176,Dummy_4176)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4177,Dummy_4177,Dummy_4177,Dummy_4177))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4178,Dummy_4178,Dummy_4178,Dummy_4178))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
                    q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
                    q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
@@ -2176,15 +2176,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -2247,9 +2247,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4193*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4196*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4199*tmp_q_4;
+                   const double tmp_q_5 = Dummy_4176*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4179*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4182*tmp_q_4;
                    const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                    const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                    const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -2262,88 +2262,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_17 = tmp_q_16*2.0;
                    const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                    const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4194*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4197*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4200*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4177*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4180*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4183*tmp_q_4;
                    const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4195*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4198*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4201*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4178*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4181*tmp_q_4;
+                   const double tmp_q_26 = Dummy_4184*tmp_q_4;
                    const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4202*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4185*_data_q_w[q];
                    const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4193*tmp_q_29;
+                   const double tmp_q_30 = Dummy_4176*tmp_q_29;
                    const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4194*tmp_q_29;
+                   const double tmp_q_32 = Dummy_4177*tmp_q_29;
                    const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4195*tmp_q_29;
+                   const double tmp_q_34 = Dummy_4178*tmp_q_29;
                    const double tmp_q_35 = tmp_q_19*tmp_q_27;
                    const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4196*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4197*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4198*tmp_q_36;
+                   const double tmp_q_37 = Dummy_4179*tmp_q_36;
+                   const double tmp_q_38 = Dummy_4180*tmp_q_36;
+                   const double tmp_q_39 = Dummy_4181*tmp_q_36;
                    const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4199*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4200*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4201*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4196*tmp_q_0;
+                   const double tmp_q_41 = Dummy_4182*tmp_q_40;
+                   const double tmp_q_42 = Dummy_4183*tmp_q_40;
+                   const double tmp_q_43 = Dummy_4184*tmp_q_40;
+                   const double tmp_q_44 = Dummy_4179*tmp_q_0;
                    const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4199*tmp_q_2;
+                   const double tmp_q_46 = Dummy_4182*tmp_q_2;
                    const double tmp_q_47 = tmp_q_19*tmp_q_46;
                    const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4197*tmp_q_0;
+                   const double tmp_q_49 = Dummy_4180*tmp_q_0;
                    const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4200*tmp_q_2;
+                   const double tmp_q_51 = Dummy_4183*tmp_q_2;
                    const double tmp_q_52 = tmp_q_19*tmp_q_51;
                    const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4198*tmp_q_0;
+                   const double tmp_q_54 = Dummy_4181*tmp_q_0;
                    const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4201*tmp_q_2;
+                   const double tmp_q_56 = Dummy_4184*tmp_q_2;
                    const double tmp_q_57 = tmp_q_19*tmp_q_56;
                    const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4193*tmp_q_0;
+                   const double tmp_q_59 = Dummy_4176*tmp_q_0;
                    const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4199*tmp_q_1;
+                   const double tmp_q_61 = Dummy_4182*tmp_q_1;
                    const double tmp_q_62 = tmp_q_19*tmp_q_61;
                    const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4194*tmp_q_0;
+                   const double tmp_q_64 = Dummy_4177*tmp_q_0;
                    const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4200*tmp_q_1;
+                   const double tmp_q_66 = Dummy_4183*tmp_q_1;
                    const double tmp_q_67 = tmp_q_19*tmp_q_66;
                    const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4195*tmp_q_0;
+                   const double tmp_q_69 = Dummy_4178*tmp_q_0;
                    const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4201*tmp_q_1;
+                   const double tmp_q_71 = Dummy_4184*tmp_q_1;
                    const double tmp_q_72 = tmp_q_19*tmp_q_71;
                    const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4193*tmp_q_2;
+                   const double tmp_q_74 = Dummy_4176*tmp_q_2;
                    const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4196*tmp_q_1;
+                   const double tmp_q_76 = Dummy_4179*tmp_q_1;
                    const double tmp_q_77 = tmp_q_19*tmp_q_76;
                    const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4194*tmp_q_2;
+                   const double tmp_q_79 = Dummy_4177*tmp_q_2;
                    const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4197*tmp_q_1;
+                   const double tmp_q_81 = Dummy_4180*tmp_q_1;
                    const double tmp_q_82 = tmp_q_19*tmp_q_81;
                    const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4195*tmp_q_2;
+                   const double tmp_q_84 = Dummy_4178*tmp_q_2;
                    const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4198*tmp_q_1;
+                   const double tmp_q_86 = Dummy_4181*tmp_q_1;
                    const double tmp_q_87 = tmp_q_19*tmp_q_86;
                    const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                    const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4199*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4200*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4201*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                   const double tmp_q_90 = Dummy_4182*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                   const double tmp_q_91 = Dummy_4183*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                   const double tmp_q_92 = Dummy_4184*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                    const double tmp_q_93 = tmp_q_0 - 4.0;
                    const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4196*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4197*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4198*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                   const double tmp_q_95 = Dummy_4179*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                   const double tmp_q_96 = Dummy_4180*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                   const double tmp_q_97 = Dummy_4181*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                    const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4193*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4194*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4195*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                   const double tmp_q_99 = Dummy_4176*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                   const double tmp_q_100 = Dummy_4177*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                   const double tmp_q_101 = Dummy_4178*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                    const double tmp_q_102 = tmp_q_19*16.0;
                    const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                    const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -2360,12 +2360,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                    const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                    const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4199*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4200*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4201*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4196*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4197*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4198*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                   const double tmp_q_118 = Dummy_4182*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                   const double tmp_q_119 = Dummy_4183*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                   const double tmp_q_120 = Dummy_4184*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                   const double tmp_q_121 = Dummy_4179*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                   const double tmp_q_122 = Dummy_4180*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                   const double tmp_q_123 = Dummy_4181*tmp_q_94 - tmp_q_56 - tmp_q_84;
                    const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                    const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                    const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -2376,7 +2376,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                    const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                    const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4193*Dummy_4193)*tmp_q_103 + (Dummy_4194*Dummy_4194)*tmp_q_103 + (Dummy_4195*Dummy_4195)*tmp_q_103);
+                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4176*Dummy_4176)*tmp_q_103 + (Dummy_4177*Dummy_4177)*tmp_q_103 + (Dummy_4178*Dummy_4178)*tmp_q_103);
                    const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                    const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                    const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -2385,7 +2385,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                    const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                    const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4196*Dummy_4196)*tmp_q_107 + (Dummy_4197*Dummy_4197)*tmp_q_107 + (Dummy_4198*Dummy_4198)*tmp_q_107);
+                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4179*Dummy_4179)*tmp_q_107 + (Dummy_4180*Dummy_4180)*tmp_q_107 + (Dummy_4181*Dummy_4181)*tmp_q_107);
                    const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                    const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                    const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -2393,7 +2393,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                    const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                    const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4199*Dummy_4199)*tmp_q_108 + (Dummy_4200*Dummy_4200)*tmp_q_108 + (Dummy_4201*Dummy_4201)*tmp_q_108);
+                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4182*Dummy_4182)*tmp_q_108 + (Dummy_4183*Dummy_4183)*tmp_q_108 + (Dummy_4184*Dummy_4184)*tmp_q_108);
                    const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                    const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                    const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -2420,7 +2420,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                    const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                    const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4194*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4195*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4193*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4177*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4178*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4176*tmp_q_98 - tmp_q_61 - tmp_q_76));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                    q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                    q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -2560,15 +2560,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -2631,9 +2631,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213));
                    const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
                    const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
@@ -2646,88 +2646,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
                    const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214));
                    const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209));
+                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215));
                    const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4233*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4216*_data_q_w[q];
                    const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207));
                    const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208));
                    const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226));
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209));
                    const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
                    const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229));
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212));
                    const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227));
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213));
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210));
                    const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230));
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213));
                    const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
                    const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228));
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211));
                    const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214));
                    const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
                    const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229));
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212));
                    const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215));
                    const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
                    const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207));
                    const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230));
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213));
                    const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
                    const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208));
                    const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231));
+                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214));
                    const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
                    const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226));
+                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209));
                    const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232));
+                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215));
                    const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
                    const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224));
+                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207));
                    const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227));
+                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210));
                    const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
                    const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225));
+                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208));
                    const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228));
+                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211));
                    const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
                    const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226));
+                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209));
                    const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229));
+                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212));
                    const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
                    const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
                    const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232)));
+                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213)));
+                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214)));
+                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215)));
                    const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
                    const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229)));
+                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210)));
+                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211)));
+                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212)));
                    const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226)));
+                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207)));
+                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208)));
+                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209)));
                    const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
                    const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
                    const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
@@ -2744,12 +2744,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
                    const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
                    const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229)));
+                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213)));
+                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214)));
+                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215)));
+                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210)));
+                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211)));
+                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2760,7 +2760,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224),_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225),_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226),_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207),_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208),_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209),_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2769,7 +2769,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227),_mm256_set_pd(Dummy_4227,Dummy_4227,Dummy_4227,Dummy_4227))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228),_mm256_set_pd(Dummy_4228,Dummy_4228,Dummy_4228,Dummy_4228)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229),_mm256_set_pd(Dummy_4229,Dummy_4229,Dummy_4229,Dummy_4229)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210),_mm256_set_pd(Dummy_4210,Dummy_4210,Dummy_4210,Dummy_4210))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211),_mm256_set_pd(Dummy_4211,Dummy_4211,Dummy_4211,Dummy_4211)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212),_mm256_set_pd(Dummy_4212,Dummy_4212,Dummy_4212,Dummy_4212)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2777,7 +2777,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230),_mm256_set_pd(Dummy_4230,Dummy_4230,Dummy_4230,Dummy_4230))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231),_mm256_set_pd(Dummy_4231,Dummy_4231,Dummy_4231,Dummy_4231)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232),_mm256_set_pd(Dummy_4232,Dummy_4232,Dummy_4232,Dummy_4232)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213),_mm256_set_pd(Dummy_4213,Dummy_4213,Dummy_4213,Dummy_4213))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214),_mm256_set_pd(Dummy_4214,Dummy_4214,Dummy_4214,Dummy_4214)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215),_mm256_set_pd(Dummy_4215,Dummy_4215,Dummy_4215,Dummy_4215)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -2804,7 +2804,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4224,Dummy_4224,Dummy_4224,Dummy_4224)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4225,Dummy_4225,Dummy_4225,Dummy_4225))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4226,Dummy_4226,Dummy_4226,Dummy_4226))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4207,Dummy_4207,Dummy_4207,Dummy_4207)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4208,Dummy_4208,Dummy_4208,Dummy_4208))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4209,Dummy_4209,Dummy_4209,Dummy_4209))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
                    q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
                    q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
@@ -2940,15 +2940,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -3011,9 +3011,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4224*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4227*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4230*tmp_q_4;
+                   const double tmp_q_5 = Dummy_4207*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4210*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4213*tmp_q_4;
                    const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                    const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                    const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -3026,88 +3026,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_17 = tmp_q_16*2.0;
                    const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                    const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4225*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4228*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4231*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4208*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4211*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4214*tmp_q_4;
                    const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4226*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4229*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4232*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4209*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4212*tmp_q_4;
+                   const double tmp_q_26 = Dummy_4215*tmp_q_4;
                    const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4233*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4216*_data_q_w[q];
                    const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4224*tmp_q_29;
+                   const double tmp_q_30 = Dummy_4207*tmp_q_29;
                    const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4225*tmp_q_29;
+                   const double tmp_q_32 = Dummy_4208*tmp_q_29;
                    const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4226*tmp_q_29;
+                   const double tmp_q_34 = Dummy_4209*tmp_q_29;
                    const double tmp_q_35 = tmp_q_19*tmp_q_27;
                    const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4227*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4228*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4229*tmp_q_36;
+                   const double tmp_q_37 = Dummy_4210*tmp_q_36;
+                   const double tmp_q_38 = Dummy_4211*tmp_q_36;
+                   const double tmp_q_39 = Dummy_4212*tmp_q_36;
                    const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4230*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4231*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4232*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4227*tmp_q_0;
+                   const double tmp_q_41 = Dummy_4213*tmp_q_40;
+                   const double tmp_q_42 = Dummy_4214*tmp_q_40;
+                   const double tmp_q_43 = Dummy_4215*tmp_q_40;
+                   const double tmp_q_44 = Dummy_4210*tmp_q_0;
                    const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4230*tmp_q_2;
+                   const double tmp_q_46 = Dummy_4213*tmp_q_2;
                    const double tmp_q_47 = tmp_q_19*tmp_q_46;
                    const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4228*tmp_q_0;
+                   const double tmp_q_49 = Dummy_4211*tmp_q_0;
                    const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4231*tmp_q_2;
+                   const double tmp_q_51 = Dummy_4214*tmp_q_2;
                    const double tmp_q_52 = tmp_q_19*tmp_q_51;
                    const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4229*tmp_q_0;
+                   const double tmp_q_54 = Dummy_4212*tmp_q_0;
                    const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4232*tmp_q_2;
+                   const double tmp_q_56 = Dummy_4215*tmp_q_2;
                    const double tmp_q_57 = tmp_q_19*tmp_q_56;
                    const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4224*tmp_q_0;
+                   const double tmp_q_59 = Dummy_4207*tmp_q_0;
                    const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4230*tmp_q_1;
+                   const double tmp_q_61 = Dummy_4213*tmp_q_1;
                    const double tmp_q_62 = tmp_q_19*tmp_q_61;
                    const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4225*tmp_q_0;
+                   const double tmp_q_64 = Dummy_4208*tmp_q_0;
                    const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4231*tmp_q_1;
+                   const double tmp_q_66 = Dummy_4214*tmp_q_1;
                    const double tmp_q_67 = tmp_q_19*tmp_q_66;
                    const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4226*tmp_q_0;
+                   const double tmp_q_69 = Dummy_4209*tmp_q_0;
                    const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4232*tmp_q_1;
+                   const double tmp_q_71 = Dummy_4215*tmp_q_1;
                    const double tmp_q_72 = tmp_q_19*tmp_q_71;
                    const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4224*tmp_q_2;
+                   const double tmp_q_74 = Dummy_4207*tmp_q_2;
                    const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4227*tmp_q_1;
+                   const double tmp_q_76 = Dummy_4210*tmp_q_1;
                    const double tmp_q_77 = tmp_q_19*tmp_q_76;
                    const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4225*tmp_q_2;
+                   const double tmp_q_79 = Dummy_4208*tmp_q_2;
                    const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4228*tmp_q_1;
+                   const double tmp_q_81 = Dummy_4211*tmp_q_1;
                    const double tmp_q_82 = tmp_q_19*tmp_q_81;
                    const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4226*tmp_q_2;
+                   const double tmp_q_84 = Dummy_4209*tmp_q_2;
                    const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4229*tmp_q_1;
+                   const double tmp_q_86 = Dummy_4212*tmp_q_1;
                    const double tmp_q_87 = tmp_q_19*tmp_q_86;
                    const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                    const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4230*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4231*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4232*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                   const double tmp_q_90 = Dummy_4213*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                   const double tmp_q_91 = Dummy_4214*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                   const double tmp_q_92 = Dummy_4215*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                    const double tmp_q_93 = tmp_q_0 - 4.0;
                    const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4227*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4228*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4229*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                   const double tmp_q_95 = Dummy_4210*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                   const double tmp_q_96 = Dummy_4211*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                   const double tmp_q_97 = Dummy_4212*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                    const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4224*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4225*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4226*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                   const double tmp_q_99 = Dummy_4207*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                   const double tmp_q_100 = Dummy_4208*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                   const double tmp_q_101 = Dummy_4209*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                    const double tmp_q_102 = tmp_q_19*16.0;
                    const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                    const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -3124,12 +3124,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                    const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                    const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4230*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4231*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4232*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4227*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4228*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4229*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                   const double tmp_q_118 = Dummy_4213*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                   const double tmp_q_119 = Dummy_4214*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                   const double tmp_q_120 = Dummy_4215*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                   const double tmp_q_121 = Dummy_4210*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                   const double tmp_q_122 = Dummy_4211*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                   const double tmp_q_123 = Dummy_4212*tmp_q_94 - tmp_q_56 - tmp_q_84;
                    const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                    const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                    const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -3140,7 +3140,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                    const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                    const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4224*Dummy_4224)*tmp_q_103 + (Dummy_4225*Dummy_4225)*tmp_q_103 + (Dummy_4226*Dummy_4226)*tmp_q_103);
+                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4207*Dummy_4207)*tmp_q_103 + (Dummy_4208*Dummy_4208)*tmp_q_103 + (Dummy_4209*Dummy_4209)*tmp_q_103);
                    const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                    const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                    const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -3149,7 +3149,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                    const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                    const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4227*Dummy_4227)*tmp_q_107 + (Dummy_4228*Dummy_4228)*tmp_q_107 + (Dummy_4229*Dummy_4229)*tmp_q_107);
+                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4210*Dummy_4210)*tmp_q_107 + (Dummy_4211*Dummy_4211)*tmp_q_107 + (Dummy_4212*Dummy_4212)*tmp_q_107);
                    const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                    const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                    const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -3157,7 +3157,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                    const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                    const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4230*Dummy_4230)*tmp_q_108 + (Dummy_4231*Dummy_4231)*tmp_q_108 + (Dummy_4232*Dummy_4232)*tmp_q_108);
+                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4213*Dummy_4213)*tmp_q_108 + (Dummy_4214*Dummy_4214)*tmp_q_108 + (Dummy_4215*Dummy_4215)*tmp_q_108);
                    const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                    const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                    const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -3184,7 +3184,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                    const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                    const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4225*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4226*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4224*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4208*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4209*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4207*tmp_q_98 - tmp_q_61 - tmp_q_76));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                    q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                    q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -3324,15 +3324,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -3395,9 +3395,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244));
                    const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
                    const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
@@ -3410,88 +3410,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
                    const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245));
                    const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240));
+                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246));
                    const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4264*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4247*_data_q_w[q];
                    const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238));
                    const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239));
                    const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257));
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240));
                    const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
                    const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260));
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243));
                    const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258));
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244));
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241));
                    const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261));
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244));
                    const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
                    const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259));
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242));
                    const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245));
                    const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
                    const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260));
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243));
                    const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246));
                    const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
                    const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238));
                    const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261));
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244));
                    const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
                    const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239));
                    const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262));
+                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245));
                    const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
                    const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257));
+                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240));
                    const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263));
+                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246));
                    const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
                    const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255));
+                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238));
                    const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258));
+                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241));
                    const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
                    const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256));
+                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239));
                    const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259));
+                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242));
                    const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
                    const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257));
+                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240));
                    const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260));
+                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243));
                    const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
                    const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
                    const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263)));
+                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244)));
+                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245)));
+                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246)));
                    const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
                    const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260)));
+                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241)));
+                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242)));
+                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243)));
                    const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257)));
+                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238)));
+                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239)));
+                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240)));
                    const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
                    const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
                    const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
@@ -3508,12 +3508,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
                    const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
                    const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260)));
+                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244)));
+                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245)));
+                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246)));
+                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241)));
+                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242)));
+                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -3524,7 +3524,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255),_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256),_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257),_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238),_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239),_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240),_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -3533,7 +3533,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258),_mm256_set_pd(Dummy_4258,Dummy_4258,Dummy_4258,Dummy_4258))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259),_mm256_set_pd(Dummy_4259,Dummy_4259,Dummy_4259,Dummy_4259)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260),_mm256_set_pd(Dummy_4260,Dummy_4260,Dummy_4260,Dummy_4260)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241),_mm256_set_pd(Dummy_4241,Dummy_4241,Dummy_4241,Dummy_4241))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242),_mm256_set_pd(Dummy_4242,Dummy_4242,Dummy_4242,Dummy_4242)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243),_mm256_set_pd(Dummy_4243,Dummy_4243,Dummy_4243,Dummy_4243)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -3541,7 +3541,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261),_mm256_set_pd(Dummy_4261,Dummy_4261,Dummy_4261,Dummy_4261))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262),_mm256_set_pd(Dummy_4262,Dummy_4262,Dummy_4262,Dummy_4262)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263),_mm256_set_pd(Dummy_4263,Dummy_4263,Dummy_4263,Dummy_4263)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244),_mm256_set_pd(Dummy_4244,Dummy_4244,Dummy_4244,Dummy_4244))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245),_mm256_set_pd(Dummy_4245,Dummy_4245,Dummy_4245,Dummy_4245)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246),_mm256_set_pd(Dummy_4246,Dummy_4246,Dummy_4246,Dummy_4246)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -3568,7 +3568,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4255,Dummy_4255,Dummy_4255,Dummy_4255)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4256,Dummy_4256,Dummy_4256,Dummy_4256))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4257,Dummy_4257,Dummy_4257,Dummy_4257))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4238,Dummy_4238,Dummy_4238,Dummy_4238)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4239,Dummy_4239,Dummy_4239,Dummy_4239))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4240,Dummy_4240,Dummy_4240,Dummy_4240))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
                    q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
                    q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
@@ -3704,15 +3704,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -3775,9 +3775,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4255*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4258*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4261*tmp_q_4;
+                   const double tmp_q_5 = Dummy_4238*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4241*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4244*tmp_q_4;
                    const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                    const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                    const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -3790,88 +3790,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_17 = tmp_q_16*2.0;
                    const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                    const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4256*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4259*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4262*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4239*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4242*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4245*tmp_q_4;
                    const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4257*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4260*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4263*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4240*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4243*tmp_q_4;
+                   const double tmp_q_26 = Dummy_4246*tmp_q_4;
                    const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4264*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4247*_data_q_w[q];
                    const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4255*tmp_q_29;
+                   const double tmp_q_30 = Dummy_4238*tmp_q_29;
                    const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4256*tmp_q_29;
+                   const double tmp_q_32 = Dummy_4239*tmp_q_29;
                    const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4257*tmp_q_29;
+                   const double tmp_q_34 = Dummy_4240*tmp_q_29;
                    const double tmp_q_35 = tmp_q_19*tmp_q_27;
                    const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4258*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4259*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4260*tmp_q_36;
+                   const double tmp_q_37 = Dummy_4241*tmp_q_36;
+                   const double tmp_q_38 = Dummy_4242*tmp_q_36;
+                   const double tmp_q_39 = Dummy_4243*tmp_q_36;
                    const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4261*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4262*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4263*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4258*tmp_q_0;
+                   const double tmp_q_41 = Dummy_4244*tmp_q_40;
+                   const double tmp_q_42 = Dummy_4245*tmp_q_40;
+                   const double tmp_q_43 = Dummy_4246*tmp_q_40;
+                   const double tmp_q_44 = Dummy_4241*tmp_q_0;
                    const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4261*tmp_q_2;
+                   const double tmp_q_46 = Dummy_4244*tmp_q_2;
                    const double tmp_q_47 = tmp_q_19*tmp_q_46;
                    const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4259*tmp_q_0;
+                   const double tmp_q_49 = Dummy_4242*tmp_q_0;
                    const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4262*tmp_q_2;
+                   const double tmp_q_51 = Dummy_4245*tmp_q_2;
                    const double tmp_q_52 = tmp_q_19*tmp_q_51;
                    const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4260*tmp_q_0;
+                   const double tmp_q_54 = Dummy_4243*tmp_q_0;
                    const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4263*tmp_q_2;
+                   const double tmp_q_56 = Dummy_4246*tmp_q_2;
                    const double tmp_q_57 = tmp_q_19*tmp_q_56;
                    const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4255*tmp_q_0;
+                   const double tmp_q_59 = Dummy_4238*tmp_q_0;
                    const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4261*tmp_q_1;
+                   const double tmp_q_61 = Dummy_4244*tmp_q_1;
                    const double tmp_q_62 = tmp_q_19*tmp_q_61;
                    const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4256*tmp_q_0;
+                   const double tmp_q_64 = Dummy_4239*tmp_q_0;
                    const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4262*tmp_q_1;
+                   const double tmp_q_66 = Dummy_4245*tmp_q_1;
                    const double tmp_q_67 = tmp_q_19*tmp_q_66;
                    const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4257*tmp_q_0;
+                   const double tmp_q_69 = Dummy_4240*tmp_q_0;
                    const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4263*tmp_q_1;
+                   const double tmp_q_71 = Dummy_4246*tmp_q_1;
                    const double tmp_q_72 = tmp_q_19*tmp_q_71;
                    const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4255*tmp_q_2;
+                   const double tmp_q_74 = Dummy_4238*tmp_q_2;
                    const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4258*tmp_q_1;
+                   const double tmp_q_76 = Dummy_4241*tmp_q_1;
                    const double tmp_q_77 = tmp_q_19*tmp_q_76;
                    const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4256*tmp_q_2;
+                   const double tmp_q_79 = Dummy_4239*tmp_q_2;
                    const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4259*tmp_q_1;
+                   const double tmp_q_81 = Dummy_4242*tmp_q_1;
                    const double tmp_q_82 = tmp_q_19*tmp_q_81;
                    const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4257*tmp_q_2;
+                   const double tmp_q_84 = Dummy_4240*tmp_q_2;
                    const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4260*tmp_q_1;
+                   const double tmp_q_86 = Dummy_4243*tmp_q_1;
                    const double tmp_q_87 = tmp_q_19*tmp_q_86;
                    const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                    const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4261*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4262*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4263*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                   const double tmp_q_90 = Dummy_4244*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                   const double tmp_q_91 = Dummy_4245*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                   const double tmp_q_92 = Dummy_4246*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                    const double tmp_q_93 = tmp_q_0 - 4.0;
                    const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4258*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4259*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4260*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                   const double tmp_q_95 = Dummy_4241*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                   const double tmp_q_96 = Dummy_4242*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                   const double tmp_q_97 = Dummy_4243*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                    const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4255*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4256*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4257*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                   const double tmp_q_99 = Dummy_4238*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                   const double tmp_q_100 = Dummy_4239*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                   const double tmp_q_101 = Dummy_4240*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                    const double tmp_q_102 = tmp_q_19*16.0;
                    const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                    const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -3888,12 +3888,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                    const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                    const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4261*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4262*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4263*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4258*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4259*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4260*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                   const double tmp_q_118 = Dummy_4244*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                   const double tmp_q_119 = Dummy_4245*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                   const double tmp_q_120 = Dummy_4246*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                   const double tmp_q_121 = Dummy_4241*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                   const double tmp_q_122 = Dummy_4242*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                   const double tmp_q_123 = Dummy_4243*tmp_q_94 - tmp_q_56 - tmp_q_84;
                    const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                    const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                    const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -3904,7 +3904,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                    const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                    const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4255*Dummy_4255)*tmp_q_103 + (Dummy_4256*Dummy_4256)*tmp_q_103 + (Dummy_4257*Dummy_4257)*tmp_q_103);
+                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4238*Dummy_4238)*tmp_q_103 + (Dummy_4239*Dummy_4239)*tmp_q_103 + (Dummy_4240*Dummy_4240)*tmp_q_103);
                    const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                    const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                    const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -3913,7 +3913,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                    const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                    const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4258*Dummy_4258)*tmp_q_107 + (Dummy_4259*Dummy_4259)*tmp_q_107 + (Dummy_4260*Dummy_4260)*tmp_q_107);
+                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4241*Dummy_4241)*tmp_q_107 + (Dummy_4242*Dummy_4242)*tmp_q_107 + (Dummy_4243*Dummy_4243)*tmp_q_107);
                    const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                    const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                    const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -3921,7 +3921,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                    const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                    const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4261*Dummy_4261)*tmp_q_108 + (Dummy_4262*Dummy_4262)*tmp_q_108 + (Dummy_4263*Dummy_4263)*tmp_q_108);
+                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4244*Dummy_4244)*tmp_q_108 + (Dummy_4245*Dummy_4245)*tmp_q_108 + (Dummy_4246*Dummy_4246)*tmp_q_108);
                    const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                    const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                    const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -3948,7 +3948,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                    const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                    const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4256*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4257*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4255*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4239*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4240*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4238*tmp_q_98 - tmp_q_61 - tmp_q_76));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                    q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                    q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -4088,15 +4088,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const __m256d src_dof_8 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d src_dof_9 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
@@ -4159,9 +4159,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275));
                    const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
                    const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
                    const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
@@ -4174,88 +4174,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
                    const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
                    const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276));
                    const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271));
+                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277));
                    const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4295*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4278*_data_q_w[q];
                    const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269));
                    const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270));
                    const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288));
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271));
                    const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
                    const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291));
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272));
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274));
                    const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289));
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275));
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272));
                    const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292));
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275));
                    const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
                    const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290));
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273));
                    const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276));
                    const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
                    const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291));
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274));
                    const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277));
                    const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
                    const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269));
                    const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292));
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275));
                    const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
                    const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270));
                    const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293));
+                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276));
                    const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
                    const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288));
+                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271));
                    const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294));
+                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277));
                    const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
                    const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286));
+                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269));
                    const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289));
+                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272));
                    const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
                    const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287));
+                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270));
                    const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290));
+                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273));
                    const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
                    const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288));
+                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271));
                    const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291));
+                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274));
                    const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
                    const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
                    const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294)));
+                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275)));
+                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276)));
+                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277)));
                    const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
                    const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291)));
+                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272)));
+                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273)));
+                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274)));
                    const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288)));
+                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269)));
+                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270)));
+                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271)));
                    const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
                    const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
                    const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
@@ -4272,12 +4272,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
                    const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
                    const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291)));
+                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275)));
+                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276)));
+                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277)));
+                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272)));
+                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273)));
+                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274)));
                    const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -4288,7 +4288,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286),_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287),_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288),_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269),_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270),_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271),_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -4297,7 +4297,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289),_mm256_set_pd(Dummy_4289,Dummy_4289,Dummy_4289,Dummy_4289))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290),_mm256_set_pd(Dummy_4290,Dummy_4290,Dummy_4290,Dummy_4290)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291),_mm256_set_pd(Dummy_4291,Dummy_4291,Dummy_4291,Dummy_4291)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272),_mm256_set_pd(Dummy_4272,Dummy_4272,Dummy_4272,Dummy_4272))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273),_mm256_set_pd(Dummy_4273,Dummy_4273,Dummy_4273,Dummy_4273)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274),_mm256_set_pd(Dummy_4274,Dummy_4274,Dummy_4274,Dummy_4274)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -4305,7 +4305,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292),_mm256_set_pd(Dummy_4292,Dummy_4292,Dummy_4292,Dummy_4292))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293),_mm256_set_pd(Dummy_4293,Dummy_4293,Dummy_4293,Dummy_4293)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294),_mm256_set_pd(Dummy_4294,Dummy_4294,Dummy_4294,Dummy_4294)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275),_mm256_set_pd(Dummy_4275,Dummy_4275,Dummy_4275,Dummy_4275))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276),_mm256_set_pd(Dummy_4276,Dummy_4276,Dummy_4276,Dummy_4276)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277),_mm256_set_pd(Dummy_4277,Dummy_4277,Dummy_4277,Dummy_4277)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
@@ -4332,7 +4332,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4286,Dummy_4286,Dummy_4286,Dummy_4286)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4287,Dummy_4287,Dummy_4287,Dummy_4287))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4288,Dummy_4288,Dummy_4288,Dummy_4288))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4269,Dummy_4269,Dummy_4269,Dummy_4269)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4270,Dummy_4270,Dummy_4270,Dummy_4270))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4271,Dummy_4271,Dummy_4271,Dummy_4271))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
                    q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
                    q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
@@ -4468,15 +4468,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double src_dof_9 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 double q_acc_0_0 = 0.0;
                 double q_acc_0_1 = 0.0;
                 double q_acc_0_2 = 0.0;
@@ -4539,9 +4539,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4286*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4289*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4292*tmp_q_4;
+                   const double tmp_q_5 = Dummy_4269*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4272*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4275*tmp_q_4;
                    const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                    const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                    const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -4554,88 +4554,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_17 = tmp_q_16*2.0;
                    const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                    const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4287*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4290*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4293*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4270*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4273*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4276*tmp_q_4;
                    const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4288*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4291*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4294*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4271*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4274*tmp_q_4;
+                   const double tmp_q_26 = Dummy_4277*tmp_q_4;
                    const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4295*_data_q_w[q];
+                   const double tmp_q_28 = Dummy_4278*_data_q_w[q];
                    const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4286*tmp_q_29;
+                   const double tmp_q_30 = Dummy_4269*tmp_q_29;
                    const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4287*tmp_q_29;
+                   const double tmp_q_32 = Dummy_4270*tmp_q_29;
                    const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4288*tmp_q_29;
+                   const double tmp_q_34 = Dummy_4271*tmp_q_29;
                    const double tmp_q_35 = tmp_q_19*tmp_q_27;
                    const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4289*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4290*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4291*tmp_q_36;
+                   const double tmp_q_37 = Dummy_4272*tmp_q_36;
+                   const double tmp_q_38 = Dummy_4273*tmp_q_36;
+                   const double tmp_q_39 = Dummy_4274*tmp_q_36;
                    const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4292*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4293*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4294*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4289*tmp_q_0;
+                   const double tmp_q_41 = Dummy_4275*tmp_q_40;
+                   const double tmp_q_42 = Dummy_4276*tmp_q_40;
+                   const double tmp_q_43 = Dummy_4277*tmp_q_40;
+                   const double tmp_q_44 = Dummy_4272*tmp_q_0;
                    const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4292*tmp_q_2;
+                   const double tmp_q_46 = Dummy_4275*tmp_q_2;
                    const double tmp_q_47 = tmp_q_19*tmp_q_46;
                    const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4290*tmp_q_0;
+                   const double tmp_q_49 = Dummy_4273*tmp_q_0;
                    const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4293*tmp_q_2;
+                   const double tmp_q_51 = Dummy_4276*tmp_q_2;
                    const double tmp_q_52 = tmp_q_19*tmp_q_51;
                    const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4291*tmp_q_0;
+                   const double tmp_q_54 = Dummy_4274*tmp_q_0;
                    const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4294*tmp_q_2;
+                   const double tmp_q_56 = Dummy_4277*tmp_q_2;
                    const double tmp_q_57 = tmp_q_19*tmp_q_56;
                    const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4286*tmp_q_0;
+                   const double tmp_q_59 = Dummy_4269*tmp_q_0;
                    const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4292*tmp_q_1;
+                   const double tmp_q_61 = Dummy_4275*tmp_q_1;
                    const double tmp_q_62 = tmp_q_19*tmp_q_61;
                    const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4287*tmp_q_0;
+                   const double tmp_q_64 = Dummy_4270*tmp_q_0;
                    const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4293*tmp_q_1;
+                   const double tmp_q_66 = Dummy_4276*tmp_q_1;
                    const double tmp_q_67 = tmp_q_19*tmp_q_66;
                    const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4288*tmp_q_0;
+                   const double tmp_q_69 = Dummy_4271*tmp_q_0;
                    const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4294*tmp_q_1;
+                   const double tmp_q_71 = Dummy_4277*tmp_q_1;
                    const double tmp_q_72 = tmp_q_19*tmp_q_71;
                    const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4286*tmp_q_2;
+                   const double tmp_q_74 = Dummy_4269*tmp_q_2;
                    const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4289*tmp_q_1;
+                   const double tmp_q_76 = Dummy_4272*tmp_q_1;
                    const double tmp_q_77 = tmp_q_19*tmp_q_76;
                    const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4287*tmp_q_2;
+                   const double tmp_q_79 = Dummy_4270*tmp_q_2;
                    const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4290*tmp_q_1;
+                   const double tmp_q_81 = Dummy_4273*tmp_q_1;
                    const double tmp_q_82 = tmp_q_19*tmp_q_81;
                    const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4288*tmp_q_2;
+                   const double tmp_q_84 = Dummy_4271*tmp_q_2;
                    const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4291*tmp_q_1;
+                   const double tmp_q_86 = Dummy_4274*tmp_q_1;
                    const double tmp_q_87 = tmp_q_19*tmp_q_86;
                    const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                    const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4292*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4293*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4294*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                   const double tmp_q_90 = Dummy_4275*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                   const double tmp_q_91 = Dummy_4276*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                   const double tmp_q_92 = Dummy_4277*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                    const double tmp_q_93 = tmp_q_0 - 4.0;
                    const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4289*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4290*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4291*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                   const double tmp_q_95 = Dummy_4272*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                   const double tmp_q_96 = Dummy_4273*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                   const double tmp_q_97 = Dummy_4274*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                    const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4286*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4287*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4288*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                   const double tmp_q_99 = Dummy_4269*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                   const double tmp_q_100 = Dummy_4270*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                   const double tmp_q_101 = Dummy_4271*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                    const double tmp_q_102 = tmp_q_19*16.0;
                    const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                    const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -4652,12 +4652,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                    const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                    const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4292*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4293*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4294*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4289*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4290*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4291*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                   const double tmp_q_118 = Dummy_4275*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                   const double tmp_q_119 = Dummy_4276*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                   const double tmp_q_120 = Dummy_4277*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                   const double tmp_q_121 = Dummy_4272*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                   const double tmp_q_122 = Dummy_4273*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                   const double tmp_q_123 = Dummy_4274*tmp_q_94 - tmp_q_56 - tmp_q_84;
                    const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                    const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                    const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -4668,7 +4668,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                    const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                    const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4286*Dummy_4286)*tmp_q_103 + (Dummy_4287*Dummy_4287)*tmp_q_103 + (Dummy_4288*Dummy_4288)*tmp_q_103);
+                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4269*Dummy_4269)*tmp_q_103 + (Dummy_4270*Dummy_4270)*tmp_q_103 + (Dummy_4271*Dummy_4271)*tmp_q_103);
                    const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                    const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                    const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -4677,7 +4677,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                    const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                    const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4289*Dummy_4289)*tmp_q_107 + (Dummy_4290*Dummy_4290)*tmp_q_107 + (Dummy_4291*Dummy_4291)*tmp_q_107);
+                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4272*Dummy_4272)*tmp_q_107 + (Dummy_4273*Dummy_4273)*tmp_q_107 + (Dummy_4274*Dummy_4274)*tmp_q_107);
                    const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                    const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                    const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -4685,7 +4685,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                    const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                    const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4292*Dummy_4292)*tmp_q_108 + (Dummy_4293*Dummy_4293)*tmp_q_108 + (Dummy_4294*Dummy_4294)*tmp_q_108);
+                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4275*Dummy_4275)*tmp_q_108 + (Dummy_4276*Dummy_4276)*tmp_q_108 + (Dummy_4277*Dummy_4277)*tmp_q_108);
                    const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                    const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                    const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -4712,7 +4712,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                    const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                    const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                    const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4287*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4288*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4286*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4270*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4271*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4269*tmp_q_98 - tmp_q_61 - tmp_q_76));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                    q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                    q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
diff --git a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
index 5e362657e0f3dd6ac686789934b1e734ead87f0e..1b37889c7106cb4e926dff7f82fec3dff8d81230 100644
--- a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
+++ b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float, int64_t micro_edges_per_macro_face ) const
+void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,52 +78,37 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double Dummy_4626 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4627 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4628 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4629 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4630 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4631 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4632 = -Dummy_4626 + Dummy_4628;
-       const double Dummy_4633 = -Dummy_4626 + Dummy_4630;
-       const double Dummy_4634 = -Dummy_4627 + Dummy_4629;
-       const double Dummy_4635 = -Dummy_4627 + Dummy_4631;
-       const double Dummy_4636 = Dummy_4635*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4637 = -Dummy_4633*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4638 = -Dummy_4634*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4639 = Dummy_4632*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4640 = fabs(Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
+       const double Dummy_4609 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4610 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4611 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4612 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4613 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4614 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4615 = -Dummy_4609 + Dummy_4611;
+       const double Dummy_4616 = -Dummy_4609 + Dummy_4613;
+       const double Dummy_4617 = -Dummy_4610 + Dummy_4612;
+       const double Dummy_4618 = -Dummy_4610 + Dummy_4614;
+       const double Dummy_4619 = Dummy_4618*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4620 = -Dummy_4616*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4621 = -Dummy_4617*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4622 = Dummy_4615*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4623 = fabs(Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
                 const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 3; q += 1)
                 {
@@ -132,107 +117,42 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                    const __m256d tmp_q_2 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_1);
                    const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
                    const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_5 = _mm256_add_pd(tmp_q_3,tmp_q_4);
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_7,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_9 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_9,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_11 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_8)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_10))),_mm256_mul_pd(k_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_0))),_mm256_mul_pd(k_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_1))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_10),tmp_q_6),tmp_q_8))),_mm256_mul_pd(k_dof_3,tmp_q_6));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_14 = _mm256_add_pd(tmp_q_12,tmp_q_13);
-                   const double tmp_q_15 = abs_det_jac_affine*_data_q_w[q];
-                   const __m256d tmp_q_16 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_18 = _mm256_mul_pd(tmp_q_11,tmp_q_5);
-                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_11,tmp_q_14);
-                   const __m256d tmp_q_21 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_11,tmp_q_24);
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_11,tmp_q_26);
-                   const __m256d tmp_q_28 = _mm256_add_pd(tmp_q_25,tmp_q_27);
-                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_11,tmp_q_29);
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_11,tmp_q_31);
-                   const __m256d tmp_q_33 = _mm256_add_pd(tmp_q_30,tmp_q_32);
-                   const __m256d tmp_q_34 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_35 = _mm256_add_pd(_mm256_mul_pd(tmp_q_25,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)));
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)));
-                   const __m256d tmp_q_37 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_39 = _mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_38));
-                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_41 = _mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_40));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_16,tmp_q_16));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_21,tmp_q_21));
-                   const __m256d tmp_q_44 = _mm256_add_pd(tmp_q_24,tmp_q_26);
-                   const __m256d tmp_q_45 = _mm256_add_pd(tmp_q_29,tmp_q_31);
-                   const __m256d tmp_q_46 = _mm256_add_pd(_mm256_mul_pd(tmp_q_24,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)));
-                   const __m256d tmp_q_47 = _mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_12),_mm256_mul_pd(tmp_q_11,tmp_q_13))),_mm256_mul_pd(tmp_q_5,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_3),_mm256_mul_pd(tmp_q_11,tmp_q_4)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_18),_mm256_mul_pd(tmp_q_19,tmp_q_20)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_20,tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_33),_mm256_mul_pd(tmp_q_28,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_36),_mm256_mul_pd(tmp_q_35,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_41),_mm256_mul_pd(tmp_q_39,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_17),tmp_q_22),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_19),tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_28),_mm256_mul_pd(tmp_q_19,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_35),_mm256_mul_pd(tmp_q_19,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_39),_mm256_mul_pd(tmp_q_19,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_28),_mm256_mul_pd(tmp_q_23,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_35),_mm256_mul_pd(tmp_q_23,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_39),_mm256_mul_pd(tmp_q_23,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,tmp_q_44),_mm256_mul_pd(tmp_q_33,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,tmp_q_44),_mm256_mul_pd(tmp_q_36,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,tmp_q_44),_mm256_mul_pd(tmp_q_41,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,tmp_q_46),_mm256_mul_pd(tmp_q_36,tmp_q_47)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,tmp_q_46),_mm256_mul_pd(tmp_q_41,tmp_q_47)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_add_pd(_mm256_mul_pd(tmp_q_26,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_38)),_mm256_mul_pd(tmp_q_41,_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_40))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_6,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_8,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_10 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_7)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_9))),_mm256_mul_pd(k_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_0))),_mm256_mul_pd(k_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_1))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_5),tmp_q_7),tmp_q_9))),_mm256_mul_pd(k_dof_3,tmp_q_5));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
+                   const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_10,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0),_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0)));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_10,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1),_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1)));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
+                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
+                   const __m256d tmp_q_18 = _mm256_mul_pd(tmp_q_10,tmp_q_16);
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_10,tmp_q_17);
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_10,tmp_q_20);
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_10,tmp_q_21);
+                   const __m256d tmp_q_24 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_25 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_25,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_25,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_11,tmp_q_12),_mm256_add_pd(_mm256_mul_pd(tmp_q_10,tmp_q_11),_mm256_mul_pd(tmp_q_10,tmp_q_12))),_mm256_mul_pd(_mm256_add_pd(tmp_q_3,tmp_q_4),_mm256_add_pd(_mm256_mul_pd(tmp_q_10,tmp_q_3),_mm256_mul_pd(tmp_q_10,tmp_q_4)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_14,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_15,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_15,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_16,tmp_q_17),_mm256_add_pd(tmp_q_18,tmp_q_19)),_mm256_mul_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),_mm256_add_pd(tmp_q_22,tmp_q_23))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_24,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_10,tmp_q_24),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_20,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_24,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_add_pd(_mm256_mul_pd(tmp_q_22,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_10,tmp_q_24),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_10,tmp_q_26)),_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_26)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_10,tmp_q_27)),_mm256_add_pd(_mm256_mul_pd(tmp_q_21,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_27))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -242,38 +162,23 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                 _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatDiag_0,_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])));
                 _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(elMatDiag_1,_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
                 _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatDiag_2,_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
-                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatDiag_3,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
-                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatDiag_4,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatDiag_3,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatDiag_4,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
                 _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatDiag_5,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
              {
-                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
                 double q_acc_5_5 = 0.0;
                 for (int64_t q = 0; q < 3; q += 1)
                 {
@@ -282,107 +187,42 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                    const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
                    const double tmp_q_3 = jac_affine_inv_0_0*tmp_q_2;
                    const double tmp_q_4 = jac_affine_inv_1_0*tmp_q_2;
-                   const double tmp_q_5 = tmp_q_3 + tmp_q_4;
-                   const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
-                   const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_8 = tmp_q_7*2.0;
-                   const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_10 = tmp_q_9*2.0;
-                   const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                   const double tmp_q_12 = jac_affine_inv_0_1*tmp_q_2;
-                   const double tmp_q_13 = jac_affine_inv_1_1*tmp_q_2;
-                   const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                   const double tmp_q_15 = abs_det_jac_affine*_data_q_w[q];
-                   const double tmp_q_16 = tmp_q_0 - 1.0;
-                   const double tmp_q_17 = jac_affine_inv_0_0*tmp_q_16;
-                   const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                   const double tmp_q_19 = jac_affine_inv_0_1*tmp_q_16;
-                   const double tmp_q_20 = tmp_q_11*tmp_q_14;
-                   const double tmp_q_21 = tmp_q_1 - 1.0;
-                   const double tmp_q_22 = jac_affine_inv_1_0*tmp_q_21;
-                   const double tmp_q_23 = jac_affine_inv_1_1*tmp_q_21;
-                   const double tmp_q_24 = jac_affine_inv_0_0*tmp_q_1;
-                   const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                   const double tmp_q_26 = jac_affine_inv_1_0*tmp_q_0;
-                   const double tmp_q_27 = tmp_q_11*tmp_q_26;
-                   const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                   const double tmp_q_29 = jac_affine_inv_0_1*tmp_q_1;
-                   const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                   const double tmp_q_31 = jac_affine_inv_1_1*tmp_q_0;
-                   const double tmp_q_32 = tmp_q_11*tmp_q_31;
-                   const double tmp_q_33 = tmp_q_30 + tmp_q_32;
-                   const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                   const double tmp_q_35 = jac_affine_inv_1_0*tmp_q_11*tmp_q_34 - tmp_q_25;
-                   const double tmp_q_36 = jac_affine_inv_1_1*tmp_q_11*tmp_q_34 - tmp_q_30;
-                   const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                   const double tmp_q_38 = jac_affine_inv_0_0*tmp_q_37;
-                   const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                   const double tmp_q_40 = jac_affine_inv_0_1*tmp_q_37;
-                   const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
-                   const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
-                   const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
-                   const double tmp_q_44 = tmp_q_24 + tmp_q_26;
-                   const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                   const double tmp_q_46 = jac_affine_inv_1_0*tmp_q_34 - tmp_q_24;
-                   const double tmp_q_47 = jac_affine_inv_1_1*tmp_q_34 - tmp_q_29;
-                   const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
-                   const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
-                   const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
-                   const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
-                   const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
-                   const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                   const double res_tmp_1_1 = tmp_q_15*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_42 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_42);
-                   const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
-                   const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
-                   const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
-                   const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                   const double res_tmp_2_2 = tmp_q_15*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_43 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_43);
-                   const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
-                   const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
-                   const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
-                   const double res_tmp_3_3 = tmp_q_15*(tmp_q_28*tmp_q_44 + tmp_q_33*tmp_q_45);
-                   const double res_tmp_3_4 = tmp_q_15*(tmp_q_35*tmp_q_44 + tmp_q_36*tmp_q_45);
-                   const double res_tmp_3_5 = tmp_q_15*(tmp_q_39*tmp_q_44 + tmp_q_41*tmp_q_45);
-                   const double res_tmp_4_4 = tmp_q_15*(tmp_q_35*tmp_q_46 + tmp_q_36*tmp_q_47);
-                   const double res_tmp_4_5 = tmp_q_15*(tmp_q_39*tmp_q_46 + tmp_q_41*tmp_q_47);
-                   const double res_tmp_5_5 = tmp_q_15*(tmp_q_39*(-tmp_q_26 + tmp_q_38) + tmp_q_41*(-tmp_q_31 + tmp_q_40));
+                   const double tmp_q_5 = tmp_q_0*_data_q_p_1[q];
+                   const double tmp_q_6 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_7 = tmp_q_6*2.0;
+                   const double tmp_q_8 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_9 = tmp_q_8*2.0;
+                   const double tmp_q_10 = k_dof_0*(tmp_q_5 + tmp_q_7 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_7 - _data_q_p_0[q]) + k_dof_2*(tmp_q_9 - _data_q_p_1[q]) + k_dof_3*tmp_q_5 + k_dof_4*(tmp_q_1 - tmp_q_5 + tmp_q_8*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_5 + tmp_q_6*-4.0);
+                   const double tmp_q_11 = jac_affine_inv_0_1*tmp_q_2;
+                   const double tmp_q_12 = jac_affine_inv_1_1*tmp_q_2;
+                   const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
+                   const double tmp_q_14 = tmp_q_10*((tmp_q_0 - 1.0)*(tmp_q_0 - 1.0));
+                   const double tmp_q_15 = tmp_q_10*((tmp_q_1 - 1.0)*(tmp_q_1 - 1.0));
+                   const double tmp_q_16 = jac_affine_inv_0_0*tmp_q_1;
+                   const double tmp_q_17 = jac_affine_inv_1_0*tmp_q_0;
+                   const double tmp_q_18 = tmp_q_10*tmp_q_16;
+                   const double tmp_q_19 = tmp_q_10*tmp_q_17;
+                   const double tmp_q_20 = jac_affine_inv_0_1*tmp_q_1;
+                   const double tmp_q_21 = jac_affine_inv_1_1*tmp_q_0;
+                   const double tmp_q_22 = tmp_q_10*tmp_q_20;
+                   const double tmp_q_23 = tmp_q_10*tmp_q_21;
+                   const double tmp_q_24 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
+                   const double tmp_q_25 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
+                   const double tmp_q_26 = jac_affine_inv_0_0*tmp_q_25;
+                   const double tmp_q_27 = jac_affine_inv_0_1*tmp_q_25;
+                   const double res_tmp_0_0 = tmp_q_13*((tmp_q_11 + tmp_q_12)*(tmp_q_10*tmp_q_11 + tmp_q_10*tmp_q_12) + (tmp_q_3 + tmp_q_4)*(tmp_q_10*tmp_q_3 + tmp_q_10*tmp_q_4));
+                   const double res_tmp_1_1 = tmp_q_13*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_14 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_14);
+                   const double res_tmp_2_2 = tmp_q_13*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_15 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_15);
+                   const double res_tmp_3_3 = tmp_q_13*((tmp_q_16 + tmp_q_17)*(tmp_q_18 + tmp_q_19) + (tmp_q_20 + tmp_q_21)*(tmp_q_22 + tmp_q_23));
+                   const double res_tmp_4_4 = tmp_q_13*((jac_affine_inv_1_0*tmp_q_24 - tmp_q_16)*(jac_affine_inv_1_0*tmp_q_10*tmp_q_24 - tmp_q_18) + (jac_affine_inv_1_1*tmp_q_24 - tmp_q_20)*(jac_affine_inv_1_1*tmp_q_10*tmp_q_24 - tmp_q_22));
+                   const double res_tmp_5_5 = tmp_q_13*((-tmp_q_17 + tmp_q_26)*(tmp_q_10*tmp_q_26 - tmp_q_19) + (-tmp_q_21 + tmp_q_27)*(tmp_q_10*tmp_q_27 - tmp_q_23));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -392,8 +232,8 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                 _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
                 _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
                 _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
                 _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
              }
           }
@@ -401,141 +241,61 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
           {
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
-                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
-                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]);
+                const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 3; q += 1)
                 {
                    const __m256d tmp_q_0 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
                    const __m256d tmp_q_1 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_2 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_1);
-                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636));
-                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638));
-                   const __m256d tmp_q_5 = _mm256_add_pd(tmp_q_3,tmp_q_4);
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_7,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_9 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_9,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_11 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_8)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_10))),_mm256_mul_pd(k_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_7,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_0))),_mm256_mul_pd(k_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_1))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_10),tmp_q_6),tmp_q_8))),_mm256_mul_pd(k_dof_3,tmp_q_6));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639));
-                   const __m256d tmp_q_14 = _mm256_add_pd(tmp_q_12,tmp_q_13);
-                   const double tmp_q_15 = Dummy_4640*_data_q_w[q];
-                   const __m256d tmp_q_16 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636));
-                   const __m256d tmp_q_18 = _mm256_mul_pd(tmp_q_11,tmp_q_5);
-                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_11,tmp_q_14);
-                   const __m256d tmp_q_21 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638));
-                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_21,_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639));
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_11,tmp_q_24);
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638));
-                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_11,tmp_q_26);
-                   const __m256d tmp_q_28 = _mm256_add_pd(tmp_q_25,tmp_q_27);
-                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637));
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_11,tmp_q_29);
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639));
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_11,tmp_q_31);
-                   const __m256d tmp_q_33 = _mm256_add_pd(tmp_q_30,tmp_q_32);
-                   const __m256d tmp_q_34 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_35 = _mm256_add_pd(_mm256_mul_pd(tmp_q_25,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638)));
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_34),_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639)));
-                   const __m256d tmp_q_37 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636));
-                   const __m256d tmp_q_39 = _mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_38));
-                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_37,_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637));
-                   const __m256d tmp_q_41 = _mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,tmp_q_40));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_16,tmp_q_16));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_11,_mm256_mul_pd(tmp_q_21,tmp_q_21));
-                   const __m256d tmp_q_44 = _mm256_add_pd(tmp_q_24,tmp_q_26);
-                   const __m256d tmp_q_45 = _mm256_add_pd(tmp_q_29,tmp_q_31);
-                   const __m256d tmp_q_46 = _mm256_add_pd(_mm256_mul_pd(tmp_q_24,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638)));
-                   const __m256d tmp_q_47 = _mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_34,_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_12),_mm256_mul_pd(tmp_q_11,tmp_q_13))),_mm256_mul_pd(tmp_q_5,_mm256_add_pd(_mm256_mul_pd(tmp_q_11,tmp_q_3),_mm256_mul_pd(tmp_q_11,tmp_q_4)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_18),_mm256_mul_pd(tmp_q_19,tmp_q_20)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_20,tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_33),_mm256_mul_pd(tmp_q_28,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_36),_mm256_mul_pd(tmp_q_35,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,tmp_q_41),_mm256_mul_pd(tmp_q_39,tmp_q_5)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636),_mm256_set_pd(Dummy_4636,Dummy_4636,Dummy_4636,Dummy_4636))),_mm256_mul_pd(tmp_q_42,_mm256_mul_pd(_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637),_mm256_set_pd(Dummy_4637,Dummy_4637,Dummy_4637,Dummy_4637)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_17),tmp_q_22),_mm256_mul_pd(_mm256_mul_pd(tmp_q_11,tmp_q_19),tmp_q_23)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_28),_mm256_mul_pd(tmp_q_19,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_35),_mm256_mul_pd(tmp_q_19,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,tmp_q_39),_mm256_mul_pd(tmp_q_19,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638),_mm256_set_pd(Dummy_4638,Dummy_4638,Dummy_4638,Dummy_4638))),_mm256_mul_pd(tmp_q_43,_mm256_mul_pd(_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639),_mm256_set_pd(Dummy_4639,Dummy_4639,Dummy_4639,Dummy_4639)))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_28),_mm256_mul_pd(tmp_q_23,tmp_q_33)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_35),_mm256_mul_pd(tmp_q_23,tmp_q_36)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_22,tmp_q_39),_mm256_mul_pd(tmp_q_23,tmp_q_41)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,tmp_q_44),_mm256_mul_pd(tmp_q_33,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,tmp_q_44),_mm256_mul_pd(tmp_q_36,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,tmp_q_44),_mm256_mul_pd(tmp_q_41,tmp_q_45)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,tmp_q_46),_mm256_mul_pd(tmp_q_36,tmp_q_47)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,tmp_q_46),_mm256_mul_pd(tmp_q_41,tmp_q_47)),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_add_pd(_mm256_mul_pd(tmp_q_26,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_38)),_mm256_mul_pd(tmp_q_41,_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_40))),_mm256_set_pd(tmp_q_15,tmp_q_15,tmp_q_15,tmp_q_15));
+                   const __m256d tmp_q_3 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4619,Dummy_4619,Dummy_4619,Dummy_4619));
+                   const __m256d tmp_q_4 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_6,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_8,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_10 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_7)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_9))),_mm256_mul_pd(k_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_6,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_0))),_mm256_mul_pd(k_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0)),_mm256_mul_pd(tmp_q_5,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),tmp_q_1))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_5),tmp_q_7),tmp_q_9))),_mm256_mul_pd(k_dof_3,tmp_q_5));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4620,Dummy_4620,Dummy_4620,Dummy_4620));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622));
+                   const double tmp_q_13 = Dummy_4623*_data_q_w[q];
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_10,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0),_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0)));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_10,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1),_mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1)));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4619,Dummy_4619,Dummy_4619,Dummy_4619));
+                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621));
+                   const __m256d tmp_q_18 = _mm256_mul_pd(tmp_q_10,tmp_q_16);
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_10,tmp_q_17);
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4620,Dummy_4620,Dummy_4620,Dummy_4620));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_10,tmp_q_20);
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_10,tmp_q_21);
+                   const __m256d tmp_q_24 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_mul_pd(tmp_q_0,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_25 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_25,_mm256_set_pd(Dummy_4619,Dummy_4619,Dummy_4619,Dummy_4619));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_25,_mm256_set_pd(Dummy_4620,Dummy_4620,Dummy_4620,Dummy_4620));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_11,tmp_q_12),_mm256_add_pd(_mm256_mul_pd(tmp_q_10,tmp_q_11),_mm256_mul_pd(tmp_q_10,tmp_q_12))),_mm256_mul_pd(_mm256_add_pd(tmp_q_3,tmp_q_4),_mm256_add_pd(_mm256_mul_pd(tmp_q_10,tmp_q_3),_mm256_mul_pd(tmp_q_10,tmp_q_4)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_14,_mm256_mul_pd(_mm256_set_pd(Dummy_4619,Dummy_4619,Dummy_4619,Dummy_4619),_mm256_set_pd(Dummy_4619,Dummy_4619,Dummy_4619,Dummy_4619))),_mm256_mul_pd(tmp_q_14,_mm256_mul_pd(_mm256_set_pd(Dummy_4620,Dummy_4620,Dummy_4620,Dummy_4620),_mm256_set_pd(Dummy_4620,Dummy_4620,Dummy_4620,Dummy_4620)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_15,_mm256_mul_pd(_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621),_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621))),_mm256_mul_pd(tmp_q_15,_mm256_mul_pd(_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622),_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622)))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_16,tmp_q_17),_mm256_add_pd(tmp_q_18,tmp_q_19)),_mm256_mul_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),_mm256_add_pd(tmp_q_22,tmp_q_23))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_24,_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621))),_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_10,tmp_q_24),_mm256_set_pd(Dummy_4621,Dummy_4621,Dummy_4621,Dummy_4621)))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_20,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_24,_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622))),_mm256_add_pd(_mm256_mul_pd(tmp_q_22,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_10,tmp_q_24),_mm256_set_pd(Dummy_4622,Dummy_4622,Dummy_4622,Dummy_4622))))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_10,tmp_q_26)),_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_26)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_10,tmp_q_27)),_mm256_add_pd(_mm256_mul_pd(tmp_q_21,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),tmp_q_27))),_mm256_set_pd(tmp_q_13,tmp_q_13,tmp_q_13,tmp_q_13));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -546,146 +306,66 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                 _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatDiag_1,_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
                 _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1],_mm256_add_pd(elMatDiag_2,_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])));
                 _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatDiag_3,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
-                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(elMatDiag_4,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
-                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatDiag_5,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1],_mm256_add_pd(elMatDiag_4,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])));
+                _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatDiag_5,_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
              }
              for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
-                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-                const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
                 double q_acc_5_5 = 0.0;
                 for (int64_t q = 0; q < 3; q += 1)
                 {
                    const double tmp_q_0 = 4.0*_data_q_p_0[q];
                    const double tmp_q_1 = 4.0*_data_q_p_1[q];
                    const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
-                   const double tmp_q_3 = Dummy_4636*tmp_q_2;
-                   const double tmp_q_4 = Dummy_4638*tmp_q_2;
-                   const double tmp_q_5 = tmp_q_3 + tmp_q_4;
-                   const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
-                   const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_8 = tmp_q_7*2.0;
-                   const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_10 = tmp_q_9*2.0;
-                   const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                   const double tmp_q_12 = Dummy_4637*tmp_q_2;
-                   const double tmp_q_13 = Dummy_4639*tmp_q_2;
-                   const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                   const double tmp_q_15 = Dummy_4640*_data_q_w[q];
-                   const double tmp_q_16 = tmp_q_0 - 1.0;
-                   const double tmp_q_17 = Dummy_4636*tmp_q_16;
-                   const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                   const double tmp_q_19 = Dummy_4637*tmp_q_16;
-                   const double tmp_q_20 = tmp_q_11*tmp_q_14;
-                   const double tmp_q_21 = tmp_q_1 - 1.0;
-                   const double tmp_q_22 = Dummy_4638*tmp_q_21;
-                   const double tmp_q_23 = Dummy_4639*tmp_q_21;
-                   const double tmp_q_24 = Dummy_4636*tmp_q_1;
-                   const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                   const double tmp_q_26 = Dummy_4638*tmp_q_0;
-                   const double tmp_q_27 = tmp_q_11*tmp_q_26;
-                   const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                   const double tmp_q_29 = Dummy_4637*tmp_q_1;
-                   const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                   const double tmp_q_31 = Dummy_4639*tmp_q_0;
-                   const double tmp_q_32 = tmp_q_11*tmp_q_31;
-                   const double tmp_q_33 = tmp_q_30 + tmp_q_32;
-                   const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                   const double tmp_q_35 = Dummy_4638*tmp_q_11*tmp_q_34 - tmp_q_25;
-                   const double tmp_q_36 = Dummy_4639*tmp_q_11*tmp_q_34 - tmp_q_30;
-                   const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                   const double tmp_q_38 = Dummy_4636*tmp_q_37;
-                   const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                   const double tmp_q_40 = Dummy_4637*tmp_q_37;
-                   const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
-                   const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
-                   const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
-                   const double tmp_q_44 = tmp_q_24 + tmp_q_26;
-                   const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                   const double tmp_q_46 = Dummy_4638*tmp_q_34 - tmp_q_24;
-                   const double tmp_q_47 = Dummy_4639*tmp_q_34 - tmp_q_29;
-                   const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
-                   const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
-                   const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
-                   const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
-                   const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
-                   const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                   const double res_tmp_1_1 = tmp_q_15*((Dummy_4636*Dummy_4636)*tmp_q_42 + (Dummy_4637*Dummy_4637)*tmp_q_42);
-                   const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
-                   const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
-                   const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
-                   const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                   const double res_tmp_2_2 = tmp_q_15*((Dummy_4638*Dummy_4638)*tmp_q_43 + (Dummy_4639*Dummy_4639)*tmp_q_43);
-                   const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
-                   const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
-                   const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
-                   const double res_tmp_3_3 = tmp_q_15*(tmp_q_28*tmp_q_44 + tmp_q_33*tmp_q_45);
-                   const double res_tmp_3_4 = tmp_q_15*(tmp_q_35*tmp_q_44 + tmp_q_36*tmp_q_45);
-                   const double res_tmp_3_5 = tmp_q_15*(tmp_q_39*tmp_q_44 + tmp_q_41*tmp_q_45);
-                   const double res_tmp_4_4 = tmp_q_15*(tmp_q_35*tmp_q_46 + tmp_q_36*tmp_q_47);
-                   const double res_tmp_4_5 = tmp_q_15*(tmp_q_39*tmp_q_46 + tmp_q_41*tmp_q_47);
-                   const double res_tmp_5_5 = tmp_q_15*(tmp_q_39*(-tmp_q_26 + tmp_q_38) + tmp_q_41*(-tmp_q_31 + tmp_q_40));
+                   const double tmp_q_3 = Dummy_4619*tmp_q_2;
+                   const double tmp_q_4 = Dummy_4621*tmp_q_2;
+                   const double tmp_q_5 = tmp_q_0*_data_q_p_1[q];
+                   const double tmp_q_6 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_7 = tmp_q_6*2.0;
+                   const double tmp_q_8 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_9 = tmp_q_8*2.0;
+                   const double tmp_q_10 = k_dof_0*(tmp_q_5 + tmp_q_7 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_7 - _data_q_p_0[q]) + k_dof_2*(tmp_q_9 - _data_q_p_1[q]) + k_dof_3*tmp_q_5 + k_dof_4*(tmp_q_1 - tmp_q_5 + tmp_q_8*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_5 + tmp_q_6*-4.0);
+                   const double tmp_q_11 = Dummy_4620*tmp_q_2;
+                   const double tmp_q_12 = Dummy_4622*tmp_q_2;
+                   const double tmp_q_13 = Dummy_4623*_data_q_w[q];
+                   const double tmp_q_14 = tmp_q_10*((tmp_q_0 - 1.0)*(tmp_q_0 - 1.0));
+                   const double tmp_q_15 = tmp_q_10*((tmp_q_1 - 1.0)*(tmp_q_1 - 1.0));
+                   const double tmp_q_16 = Dummy_4619*tmp_q_1;
+                   const double tmp_q_17 = Dummy_4621*tmp_q_0;
+                   const double tmp_q_18 = tmp_q_10*tmp_q_16;
+                   const double tmp_q_19 = tmp_q_10*tmp_q_17;
+                   const double tmp_q_20 = Dummy_4620*tmp_q_1;
+                   const double tmp_q_21 = Dummy_4622*tmp_q_0;
+                   const double tmp_q_22 = tmp_q_10*tmp_q_20;
+                   const double tmp_q_23 = tmp_q_10*tmp_q_21;
+                   const double tmp_q_24 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
+                   const double tmp_q_25 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
+                   const double tmp_q_26 = Dummy_4619*tmp_q_25;
+                   const double tmp_q_27 = Dummy_4620*tmp_q_25;
+                   const double res_tmp_0_0 = tmp_q_13*((tmp_q_11 + tmp_q_12)*(tmp_q_10*tmp_q_11 + tmp_q_10*tmp_q_12) + (tmp_q_3 + tmp_q_4)*(tmp_q_10*tmp_q_3 + tmp_q_10*tmp_q_4));
+                   const double res_tmp_1_1 = tmp_q_13*((Dummy_4619*Dummy_4619)*tmp_q_14 + (Dummy_4620*Dummy_4620)*tmp_q_14);
+                   const double res_tmp_2_2 = tmp_q_13*((Dummy_4621*Dummy_4621)*tmp_q_15 + (Dummy_4622*Dummy_4622)*tmp_q_15);
+                   const double res_tmp_3_3 = tmp_q_13*((tmp_q_16 + tmp_q_17)*(tmp_q_18 + tmp_q_19) + (tmp_q_20 + tmp_q_21)*(tmp_q_22 + tmp_q_23));
+                   const double res_tmp_4_4 = tmp_q_13*((Dummy_4621*tmp_q_24 - tmp_q_16)*(Dummy_4621*tmp_q_10*tmp_q_24 - tmp_q_18) + (Dummy_4622*tmp_q_24 - tmp_q_20)*(Dummy_4622*tmp_q_10*tmp_q_24 - tmp_q_22));
+                   const double res_tmp_5_5 = tmp_q_13*((-tmp_q_17 + tmp_q_26)*(tmp_q_10*tmp_q_26 - tmp_q_19) + (-tmp_q_21 + tmp_q_27)*(tmp_q_10*tmp_q_27 - tmp_q_23));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -696,8 +376,8 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                 _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
                 _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
                 _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              }
           }
        }
diff --git a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
index 6bf4b7a9dcd8a3fc192f1d81c1df8c7e29757d1b..53acb832e856edb6442f4d33b4adf0ed747bf607 100644
--- a/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
+++ b/operators/div_k_grad/avx/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,161 +96,161 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double Dummy_4749 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4750 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4751 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4752 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4753 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4754 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4755 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4756 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4757 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4758 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4759 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4760 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4761 = -Dummy_4749 + Dummy_4752;
-       const double Dummy_4762 = -Dummy_4749 + Dummy_4755;
-       const double Dummy_4763 = -Dummy_4749 + Dummy_4758;
-       const double Dummy_4764 = -Dummy_4750 + Dummy_4753;
-       const double Dummy_4765 = -Dummy_4750 + Dummy_4756;
-       const double Dummy_4766 = -Dummy_4750 + Dummy_4759;
-       const double Dummy_4767 = -Dummy_4751 + Dummy_4754;
-       const double Dummy_4768 = -Dummy_4751 + Dummy_4757;
-       const double Dummy_4769 = -Dummy_4751 + Dummy_4760;
-       const double Dummy_4770 = (Dummy_4765*Dummy_4769 - Dummy_4766*Dummy_4768)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4771 = (-Dummy_4762*Dummy_4769 + Dummy_4763*Dummy_4768)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4772 = (Dummy_4762*Dummy_4766 - Dummy_4763*Dummy_4765)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4773 = (-Dummy_4764*Dummy_4769 + Dummy_4766*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4774 = (Dummy_4761*Dummy_4769 - Dummy_4763*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4775 = (-Dummy_4761*Dummy_4766 + Dummy_4763*Dummy_4764)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4776 = (Dummy_4764*Dummy_4768 - Dummy_4765*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4777 = (-Dummy_4761*Dummy_4768 + Dummy_4762*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4778 = (Dummy_4761*Dummy_4765 - Dummy_4762*Dummy_4764)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4779 = fabs(Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4780 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4781 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4782 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4783 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4784 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4785 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4786 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4787 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4788 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4789 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4790 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4791 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4792 = -Dummy_4780 + Dummy_4783;
-       const double Dummy_4793 = -Dummy_4780 + Dummy_4786;
-       const double Dummy_4794 = -Dummy_4780 + Dummy_4789;
-       const double Dummy_4795 = -Dummy_4781 + Dummy_4784;
-       const double Dummy_4796 = -Dummy_4781 + Dummy_4787;
-       const double Dummy_4797 = -Dummy_4781 + Dummy_4790;
-       const double Dummy_4798 = -Dummy_4782 + Dummy_4785;
-       const double Dummy_4799 = -Dummy_4782 + Dummy_4788;
-       const double Dummy_4800 = -Dummy_4782 + Dummy_4791;
-       const double Dummy_4801 = (Dummy_4796*Dummy_4800 - Dummy_4797*Dummy_4799)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4802 = (-Dummy_4793*Dummy_4800 + Dummy_4794*Dummy_4799)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4803 = (Dummy_4793*Dummy_4797 - Dummy_4794*Dummy_4796)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4804 = (-Dummy_4795*Dummy_4800 + Dummy_4797*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4805 = (Dummy_4792*Dummy_4800 - Dummy_4794*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4806 = (-Dummy_4792*Dummy_4797 + Dummy_4794*Dummy_4795)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4807 = (Dummy_4795*Dummy_4799 - Dummy_4796*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4808 = (-Dummy_4792*Dummy_4799 + Dummy_4793*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4809 = (Dummy_4792*Dummy_4796 - Dummy_4793*Dummy_4795)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4810 = fabs(Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4811 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4812 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4813 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4814 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4815 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4816 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4817 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4818 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4819 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4820 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4821 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4822 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4823 = -Dummy_4811 + Dummy_4814;
-       const double Dummy_4824 = -Dummy_4811 + Dummy_4817;
-       const double Dummy_4825 = -Dummy_4811 + Dummy_4820;
-       const double Dummy_4826 = -Dummy_4812 + Dummy_4815;
-       const double Dummy_4827 = -Dummy_4812 + Dummy_4818;
-       const double Dummy_4828 = -Dummy_4812 + Dummy_4821;
-       const double Dummy_4829 = -Dummy_4813 + Dummy_4816;
-       const double Dummy_4830 = -Dummy_4813 + Dummy_4819;
-       const double Dummy_4831 = -Dummy_4813 + Dummy_4822;
-       const double Dummy_4832 = (Dummy_4827*Dummy_4831 - Dummy_4828*Dummy_4830)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4833 = (-Dummy_4824*Dummy_4831 + Dummy_4825*Dummy_4830)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4834 = (Dummy_4824*Dummy_4828 - Dummy_4825*Dummy_4827)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4835 = (-Dummy_4826*Dummy_4831 + Dummy_4828*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4836 = (Dummy_4823*Dummy_4831 - Dummy_4825*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4837 = (-Dummy_4823*Dummy_4828 + Dummy_4825*Dummy_4826)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4838 = (Dummy_4826*Dummy_4830 - Dummy_4827*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4839 = (-Dummy_4823*Dummy_4830 + Dummy_4824*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4840 = (Dummy_4823*Dummy_4827 - Dummy_4824*Dummy_4826)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4841 = fabs(Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4842 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4843 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4844 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4845 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4846 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4847 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4848 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4849 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4850 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4851 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4852 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4853 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4854 = -Dummy_4842 + Dummy_4845;
-       const double Dummy_4855 = -Dummy_4842 + Dummy_4848;
-       const double Dummy_4856 = -Dummy_4842 + Dummy_4851;
-       const double Dummy_4857 = -Dummy_4843 + Dummy_4846;
-       const double Dummy_4858 = -Dummy_4843 + Dummy_4849;
-       const double Dummy_4859 = -Dummy_4843 + Dummy_4852;
-       const double Dummy_4860 = -Dummy_4844 + Dummy_4847;
-       const double Dummy_4861 = -Dummy_4844 + Dummy_4850;
-       const double Dummy_4862 = -Dummy_4844 + Dummy_4853;
-       const double Dummy_4863 = (Dummy_4858*Dummy_4862 - Dummy_4859*Dummy_4861)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4864 = (-Dummy_4855*Dummy_4862 + Dummy_4856*Dummy_4861)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4865 = (Dummy_4855*Dummy_4859 - Dummy_4856*Dummy_4858)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4866 = (-Dummy_4857*Dummy_4862 + Dummy_4859*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4867 = (Dummy_4854*Dummy_4862 - Dummy_4856*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4868 = (-Dummy_4854*Dummy_4859 + Dummy_4856*Dummy_4857)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4869 = (Dummy_4857*Dummy_4861 - Dummy_4858*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4870 = (-Dummy_4854*Dummy_4861 + Dummy_4855*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4871 = (Dummy_4854*Dummy_4858 - Dummy_4855*Dummy_4857)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4872 = fabs(Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4873 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4874 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4875 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4876 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4877 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4878 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4879 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4880 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4881 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4882 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4883 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4884 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4885 = -Dummy_4873 + Dummy_4876;
-       const double Dummy_4886 = -Dummy_4873 + Dummy_4879;
-       const double Dummy_4887 = -Dummy_4873 + Dummy_4882;
-       const double Dummy_4888 = -Dummy_4874 + Dummy_4877;
-       const double Dummy_4889 = -Dummy_4874 + Dummy_4880;
-       const double Dummy_4890 = -Dummy_4874 + Dummy_4883;
-       const double Dummy_4891 = -Dummy_4875 + Dummy_4878;
-       const double Dummy_4892 = -Dummy_4875 + Dummy_4881;
-       const double Dummy_4893 = -Dummy_4875 + Dummy_4884;
-       const double Dummy_4894 = (Dummy_4889*Dummy_4893 - Dummy_4890*Dummy_4892)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4895 = (-Dummy_4886*Dummy_4893 + Dummy_4887*Dummy_4892)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4896 = (Dummy_4886*Dummy_4890 - Dummy_4887*Dummy_4889)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4897 = (-Dummy_4888*Dummy_4893 + Dummy_4890*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4898 = (Dummy_4885*Dummy_4893 - Dummy_4887*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4899 = (-Dummy_4885*Dummy_4890 + Dummy_4887*Dummy_4888)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4900 = (Dummy_4888*Dummy_4892 - Dummy_4889*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4901 = (-Dummy_4885*Dummy_4892 + Dummy_4886*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4902 = (Dummy_4885*Dummy_4889 - Dummy_4886*Dummy_4888)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4903 = fabs(Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
+       const double Dummy_4732 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4733 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4734 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4735 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4736 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4737 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4738 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4739 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4740 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4741 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4742 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4743 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4744 = -Dummy_4732 + Dummy_4735;
+       const double Dummy_4745 = -Dummy_4732 + Dummy_4738;
+       const double Dummy_4746 = -Dummy_4732 + Dummy_4741;
+       const double Dummy_4747 = -Dummy_4733 + Dummy_4736;
+       const double Dummy_4748 = -Dummy_4733 + Dummy_4739;
+       const double Dummy_4749 = -Dummy_4733 + Dummy_4742;
+       const double Dummy_4750 = -Dummy_4734 + Dummy_4737;
+       const double Dummy_4751 = -Dummy_4734 + Dummy_4740;
+       const double Dummy_4752 = -Dummy_4734 + Dummy_4743;
+       const double Dummy_4753 = (Dummy_4748*Dummy_4752 - Dummy_4749*Dummy_4751)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4754 = (-Dummy_4745*Dummy_4752 + Dummy_4746*Dummy_4751)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4755 = (Dummy_4745*Dummy_4749 - Dummy_4746*Dummy_4748)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4756 = (-Dummy_4747*Dummy_4752 + Dummy_4749*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4757 = (Dummy_4744*Dummy_4752 - Dummy_4746*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4758 = (-Dummy_4744*Dummy_4749 + Dummy_4746*Dummy_4747)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4759 = (Dummy_4747*Dummy_4751 - Dummy_4748*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4760 = (-Dummy_4744*Dummy_4751 + Dummy_4745*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4761 = (Dummy_4744*Dummy_4748 - Dummy_4745*Dummy_4747)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4762 = fabs(Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4763 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4764 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4765 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4766 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4767 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4768 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4769 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4770 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4771 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4772 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4773 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4774 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4775 = -Dummy_4763 + Dummy_4766;
+       const double Dummy_4776 = -Dummy_4763 + Dummy_4769;
+       const double Dummy_4777 = -Dummy_4763 + Dummy_4772;
+       const double Dummy_4778 = -Dummy_4764 + Dummy_4767;
+       const double Dummy_4779 = -Dummy_4764 + Dummy_4770;
+       const double Dummy_4780 = -Dummy_4764 + Dummy_4773;
+       const double Dummy_4781 = -Dummy_4765 + Dummy_4768;
+       const double Dummy_4782 = -Dummy_4765 + Dummy_4771;
+       const double Dummy_4783 = -Dummy_4765 + Dummy_4774;
+       const double Dummy_4784 = (Dummy_4779*Dummy_4783 - Dummy_4780*Dummy_4782)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4785 = (-Dummy_4776*Dummy_4783 + Dummy_4777*Dummy_4782)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4786 = (Dummy_4776*Dummy_4780 - Dummy_4777*Dummy_4779)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4787 = (-Dummy_4778*Dummy_4783 + Dummy_4780*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4788 = (Dummy_4775*Dummy_4783 - Dummy_4777*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4789 = (-Dummy_4775*Dummy_4780 + Dummy_4777*Dummy_4778)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4790 = (Dummy_4778*Dummy_4782 - Dummy_4779*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4791 = (-Dummy_4775*Dummy_4782 + Dummy_4776*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4792 = (Dummy_4775*Dummy_4779 - Dummy_4776*Dummy_4778)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4793 = fabs(Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4794 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4795 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4796 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4797 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4798 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4799 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4800 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4801 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4802 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4803 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4804 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4805 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4806 = -Dummy_4794 + Dummy_4797;
+       const double Dummy_4807 = -Dummy_4794 + Dummy_4800;
+       const double Dummy_4808 = -Dummy_4794 + Dummy_4803;
+       const double Dummy_4809 = -Dummy_4795 + Dummy_4798;
+       const double Dummy_4810 = -Dummy_4795 + Dummy_4801;
+       const double Dummy_4811 = -Dummy_4795 + Dummy_4804;
+       const double Dummy_4812 = -Dummy_4796 + Dummy_4799;
+       const double Dummy_4813 = -Dummy_4796 + Dummy_4802;
+       const double Dummy_4814 = -Dummy_4796 + Dummy_4805;
+       const double Dummy_4815 = (Dummy_4810*Dummy_4814 - Dummy_4811*Dummy_4813)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4816 = (-Dummy_4807*Dummy_4814 + Dummy_4808*Dummy_4813)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4817 = (Dummy_4807*Dummy_4811 - Dummy_4808*Dummy_4810)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4818 = (-Dummy_4809*Dummy_4814 + Dummy_4811*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4819 = (Dummy_4806*Dummy_4814 - Dummy_4808*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4820 = (-Dummy_4806*Dummy_4811 + Dummy_4808*Dummy_4809)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4821 = (Dummy_4809*Dummy_4813 - Dummy_4810*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4822 = (-Dummy_4806*Dummy_4813 + Dummy_4807*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4823 = (Dummy_4806*Dummy_4810 - Dummy_4807*Dummy_4809)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4824 = fabs(Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4825 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4826 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4827 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4828 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4829 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4830 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4831 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4832 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4833 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4834 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4835 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4836 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4837 = -Dummy_4825 + Dummy_4828;
+       const double Dummy_4838 = -Dummy_4825 + Dummy_4831;
+       const double Dummy_4839 = -Dummy_4825 + Dummy_4834;
+       const double Dummy_4840 = -Dummy_4826 + Dummy_4829;
+       const double Dummy_4841 = -Dummy_4826 + Dummy_4832;
+       const double Dummy_4842 = -Dummy_4826 + Dummy_4835;
+       const double Dummy_4843 = -Dummy_4827 + Dummy_4830;
+       const double Dummy_4844 = -Dummy_4827 + Dummy_4833;
+       const double Dummy_4845 = -Dummy_4827 + Dummy_4836;
+       const double Dummy_4846 = (Dummy_4841*Dummy_4845 - Dummy_4842*Dummy_4844)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4847 = (-Dummy_4838*Dummy_4845 + Dummy_4839*Dummy_4844)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4848 = (Dummy_4838*Dummy_4842 - Dummy_4839*Dummy_4841)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4849 = (-Dummy_4840*Dummy_4845 + Dummy_4842*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4850 = (Dummy_4837*Dummy_4845 - Dummy_4839*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4851 = (-Dummy_4837*Dummy_4842 + Dummy_4839*Dummy_4840)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4852 = (Dummy_4840*Dummy_4844 - Dummy_4841*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4853 = (-Dummy_4837*Dummy_4844 + Dummy_4838*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4854 = (Dummy_4837*Dummy_4841 - Dummy_4838*Dummy_4840)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4855 = fabs(Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4856 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4857 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4858 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4859 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4860 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4861 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4862 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4863 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4864 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4865 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4866 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4867 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4868 = -Dummy_4856 + Dummy_4859;
+       const double Dummy_4869 = -Dummy_4856 + Dummy_4862;
+       const double Dummy_4870 = -Dummy_4856 + Dummy_4865;
+       const double Dummy_4871 = -Dummy_4857 + Dummy_4860;
+       const double Dummy_4872 = -Dummy_4857 + Dummy_4863;
+       const double Dummy_4873 = -Dummy_4857 + Dummy_4866;
+       const double Dummy_4874 = -Dummy_4858 + Dummy_4861;
+       const double Dummy_4875 = -Dummy_4858 + Dummy_4864;
+       const double Dummy_4876 = -Dummy_4858 + Dummy_4867;
+       const double Dummy_4877 = (Dummy_4872*Dummy_4876 - Dummy_4873*Dummy_4875)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4878 = (-Dummy_4869*Dummy_4876 + Dummy_4870*Dummy_4875)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4879 = (Dummy_4869*Dummy_4873 - Dummy_4870*Dummy_4872)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4880 = (-Dummy_4871*Dummy_4876 + Dummy_4873*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4881 = (Dummy_4868*Dummy_4876 - Dummy_4870*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4882 = (-Dummy_4868*Dummy_4873 + Dummy_4870*Dummy_4871)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4883 = (Dummy_4871*Dummy_4875 - Dummy_4872*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4884 = (-Dummy_4868*Dummy_4875 + Dummy_4869*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4885 = (Dummy_4868*Dummy_4872 - Dummy_4869*Dummy_4871)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4886 = fabs(Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
@@ -258,69 +258,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -332,278 +287,89 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
                    const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
                    const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = abs_det_jac_affine*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
+                   const double tmp_q_25 = abs_det_jac_affine*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0,jac_affine_inv_2_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1,jac_affine_inv_2_1))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2,jac_affine_inv_2_2))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0,jac_affine_inv_1_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1,jac_affine_inv_1_1))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2,jac_affine_inv_1_2))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0,jac_affine_inv_0_0)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1,jac_affine_inv_0_1))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2,jac_affine_inv_0_2))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -628,69 +394,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -702,278 +423,89 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_5 = jac_affine_inv_0_0*tmp_q_4;
                    const double tmp_q_6 = jac_affine_inv_1_0*tmp_q_4;
                    const double tmp_q_7 = jac_affine_inv_2_0*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = jac_affine_inv_0_1*tmp_q_4;
-                   const double tmp_q_21 = jac_affine_inv_1_1*tmp_q_4;
-                   const double tmp_q_22 = jac_affine_inv_2_1*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = jac_affine_inv_0_2*tmp_q_4;
-                   const double tmp_q_25 = jac_affine_inv_1_2*tmp_q_4;
-                   const double tmp_q_26 = jac_affine_inv_2_2*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = abs_det_jac_affine*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = jac_affine_inv_0_0*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = jac_affine_inv_0_1*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = jac_affine_inv_0_2*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = jac_affine_inv_1_0*tmp_q_36;
-                   const double tmp_q_38 = jac_affine_inv_1_1*tmp_q_36;
-                   const double tmp_q_39 = jac_affine_inv_1_2*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = jac_affine_inv_2_0*tmp_q_40;
-                   const double tmp_q_42 = jac_affine_inv_2_1*tmp_q_40;
-                   const double tmp_q_43 = jac_affine_inv_2_2*tmp_q_40;
-                   const double tmp_q_44 = jac_affine_inv_1_0*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = jac_affine_inv_2_0*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = jac_affine_inv_1_1*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = jac_affine_inv_2_1*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = jac_affine_inv_1_2*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = jac_affine_inv_2_2*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = jac_affine_inv_0_0*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = jac_affine_inv_2_0*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = jac_affine_inv_0_1*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = jac_affine_inv_2_1*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = jac_affine_inv_0_2*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = jac_affine_inv_2_2*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = jac_affine_inv_0_0*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = jac_affine_inv_1_0*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = jac_affine_inv_0_1*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = jac_affine_inv_1_1*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = jac_affine_inv_0_2*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = jac_affine_inv_1_2*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = jac_affine_inv_2_0*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = jac_affine_inv_2_1*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = jac_affine_inv_2_2*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = jac_affine_inv_1_0*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = jac_affine_inv_1_1*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = jac_affine_inv_1_2*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = jac_affine_inv_0_0*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = jac_affine_inv_0_1*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = jac_affine_inv_0_2*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = jac_affine_inv_2_0*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = jac_affine_inv_2_1*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = jac_affine_inv_2_2*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = jac_affine_inv_1_0*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = jac_affine_inv_1_1*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = jac_affine_inv_1_2*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_103 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_103 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_107 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_107 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_108 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_108 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(jac_affine_inv_0_1*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(jac_affine_inv_0_2*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(jac_affine_inv_0_0*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = jac_affine_inv_0_1*tmp_q_4;
+                   const double tmp_q_20 = jac_affine_inv_1_1*tmp_q_4;
+                   const double tmp_q_21 = jac_affine_inv_2_1*tmp_q_4;
+                   const double tmp_q_22 = jac_affine_inv_0_2*tmp_q_4;
+                   const double tmp_q_23 = jac_affine_inv_1_2*tmp_q_4;
+                   const double tmp_q_24 = jac_affine_inv_2_2*tmp_q_4;
+                   const double tmp_q_25 = abs_det_jac_affine*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = jac_affine_inv_1_0*tmp_q_0;
+                   const double tmp_q_31 = jac_affine_inv_2_0*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = jac_affine_inv_1_1*tmp_q_0;
+                   const double tmp_q_35 = jac_affine_inv_2_1*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = jac_affine_inv_1_2*tmp_q_0;
+                   const double tmp_q_39 = jac_affine_inv_2_2*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = jac_affine_inv_0_0*tmp_q_0;
+                   const double tmp_q_43 = jac_affine_inv_2_0*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = jac_affine_inv_0_1*tmp_q_0;
+                   const double tmp_q_47 = jac_affine_inv_2_1*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = jac_affine_inv_0_2*tmp_q_0;
+                   const double tmp_q_51 = jac_affine_inv_2_2*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = jac_affine_inv_0_0*tmp_q_2;
+                   const double tmp_q_55 = jac_affine_inv_1_0*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = jac_affine_inv_0_1*tmp_q_2;
+                   const double tmp_q_59 = jac_affine_inv_1_1*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = jac_affine_inv_0_2*tmp_q_2;
+                   const double tmp_q_63 = jac_affine_inv_1_2*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_27 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_27 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_28 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_28 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_29 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_29 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((jac_affine_inv_2_0*tmp_q_66 - tmp_q_30 - tmp_q_42)*(jac_affine_inv_2_0*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (jac_affine_inv_2_1*tmp_q_66 - tmp_q_34 - tmp_q_46)*(jac_affine_inv_2_1*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (jac_affine_inv_2_2*tmp_q_66 - tmp_q_38 - tmp_q_50)*(jac_affine_inv_2_2*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((jac_affine_inv_1_0*tmp_q_68 - tmp_q_31 - tmp_q_54)*(jac_affine_inv_1_0*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (jac_affine_inv_1_1*tmp_q_68 - tmp_q_35 - tmp_q_58)*(jac_affine_inv_1_1*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (jac_affine_inv_1_2*tmp_q_68 - tmp_q_39 - tmp_q_62)*(jac_affine_inv_1_2*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((jac_affine_inv_0_0*tmp_q_69 - tmp_q_43 - tmp_q_55)*(jac_affine_inv_0_0*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (jac_affine_inv_0_1*tmp_q_69 - tmp_q_47 - tmp_q_59)*(jac_affine_inv_0_1*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (jac_affine_inv_0_2*tmp_q_69 - tmp_q_51 - tmp_q_63)*(jac_affine_inv_0_2*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -1002,69 +534,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -1073,281 +560,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4779*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770),_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771),_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772),_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773),_mm256_set_pd(Dummy_4773,Dummy_4773,Dummy_4773,Dummy_4773))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774),_mm256_set_pd(Dummy_4774,Dummy_4774,Dummy_4774,Dummy_4774)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775),_mm256_set_pd(Dummy_4775,Dummy_4775,Dummy_4775,Dummy_4775)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776),_mm256_set_pd(Dummy_4776,Dummy_4776,Dummy_4776,Dummy_4776))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777),_mm256_set_pd(Dummy_4777,Dummy_4777,Dummy_4777,Dummy_4777)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778),_mm256_set_pd(Dummy_4778,Dummy_4778,Dummy_4778,Dummy_4778)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4770,Dummy_4770,Dummy_4770,Dummy_4770)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4771,Dummy_4771,Dummy_4771,Dummy_4771))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4772,Dummy_4772,Dummy_4772,Dummy_4772))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761));
+                   const double tmp_q_25 = Dummy_4762*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753),_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754),_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755),_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756),_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757),_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758),_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759),_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760),_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761),_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4759,Dummy_4759,Dummy_4759,Dummy_4759)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4760,Dummy_4760,Dummy_4760,Dummy_4760))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4761,Dummy_4761,Dummy_4761,Dummy_4761))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4756,Dummy_4756,Dummy_4756,Dummy_4756)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4757,Dummy_4757,Dummy_4757,Dummy_4757))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4758,Dummy_4758,Dummy_4758,Dummy_4758))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4753,Dummy_4753,Dummy_4753,Dummy_4753)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4754,Dummy_4754,Dummy_4754,Dummy_4754))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4755,Dummy_4755,Dummy_4755,Dummy_4755))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -1372,69 +670,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -1443,281 +696,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4770*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4773*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4776*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4771*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4774*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4777*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4772*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4775*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4778*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4779*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4770*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4771*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4772*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4773*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4774*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4775*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4776*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4777*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4778*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4773*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4776*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4774*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4777*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4775*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4778*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4770*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4776*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4771*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4777*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4772*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4778*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4770*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4773*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4771*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4774*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4772*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4775*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4776*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4777*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4778*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4773*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4774*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4775*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4770*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4771*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4772*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4776*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4777*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4778*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4773*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4774*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4775*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4770*Dummy_4770)*tmp_q_103 + (Dummy_4771*Dummy_4771)*tmp_q_103 + (Dummy_4772*Dummy_4772)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4773*Dummy_4773)*tmp_q_107 + (Dummy_4774*Dummy_4774)*tmp_q_107 + (Dummy_4775*Dummy_4775)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4776*Dummy_4776)*tmp_q_108 + (Dummy_4777*Dummy_4777)*tmp_q_108 + (Dummy_4778*Dummy_4778)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4771*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4772*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4770*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_5 = Dummy_4753*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4756*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4759*tmp_q_4;
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = Dummy_4754*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4757*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4760*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4755*tmp_q_4;
+                   const double tmp_q_23 = Dummy_4758*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4761*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4762*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = Dummy_4756*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4759*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = Dummy_4757*tmp_q_0;
+                   const double tmp_q_35 = Dummy_4760*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = Dummy_4758*tmp_q_0;
+                   const double tmp_q_39 = Dummy_4761*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = Dummy_4753*tmp_q_0;
+                   const double tmp_q_43 = Dummy_4759*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = Dummy_4754*tmp_q_0;
+                   const double tmp_q_47 = Dummy_4760*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = Dummy_4755*tmp_q_0;
+                   const double tmp_q_51 = Dummy_4761*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = Dummy_4753*tmp_q_2;
+                   const double tmp_q_55 = Dummy_4756*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = Dummy_4754*tmp_q_2;
+                   const double tmp_q_59 = Dummy_4757*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = Dummy_4755*tmp_q_2;
+                   const double tmp_q_63 = Dummy_4758*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((Dummy_4753*Dummy_4753)*tmp_q_27 + (Dummy_4754*Dummy_4754)*tmp_q_27 + (Dummy_4755*Dummy_4755)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((Dummy_4756*Dummy_4756)*tmp_q_28 + (Dummy_4757*Dummy_4757)*tmp_q_28 + (Dummy_4758*Dummy_4758)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((Dummy_4759*Dummy_4759)*tmp_q_29 + (Dummy_4760*Dummy_4760)*tmp_q_29 + (Dummy_4761*Dummy_4761)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((Dummy_4759*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4759*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4760*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4760*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4761*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4761*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((Dummy_4756*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4756*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4757*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4757*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4758*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4758*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((Dummy_4753*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4753*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4754*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4754*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4755*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4755*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -1746,69 +810,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -1817,281 +836,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4810*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801),_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802),_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803),_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804),_mm256_set_pd(Dummy_4804,Dummy_4804,Dummy_4804,Dummy_4804))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805),_mm256_set_pd(Dummy_4805,Dummy_4805,Dummy_4805,Dummy_4805)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806),_mm256_set_pd(Dummy_4806,Dummy_4806,Dummy_4806,Dummy_4806)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807),_mm256_set_pd(Dummy_4807,Dummy_4807,Dummy_4807,Dummy_4807))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808),_mm256_set_pd(Dummy_4808,Dummy_4808,Dummy_4808,Dummy_4808)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809),_mm256_set_pd(Dummy_4809,Dummy_4809,Dummy_4809,Dummy_4809)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4801,Dummy_4801,Dummy_4801,Dummy_4801)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4802,Dummy_4802,Dummy_4802,Dummy_4802))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4803,Dummy_4803,Dummy_4803,Dummy_4803))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792));
+                   const double tmp_q_25 = Dummy_4793*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784),_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785),_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786),_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787),_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788),_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789),_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790),_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791),_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792),_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4790,Dummy_4790,Dummy_4790,Dummy_4790)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4791,Dummy_4791,Dummy_4791,Dummy_4791))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4792,Dummy_4792,Dummy_4792,Dummy_4792))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4787,Dummy_4787,Dummy_4787,Dummy_4787)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4788,Dummy_4788,Dummy_4788,Dummy_4788))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4789,Dummy_4789,Dummy_4789,Dummy_4789))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4784,Dummy_4784,Dummy_4784,Dummy_4784)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4785,Dummy_4785,Dummy_4785,Dummy_4785))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4786,Dummy_4786,Dummy_4786,Dummy_4786))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -2116,69 +946,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -2187,281 +972,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4801*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4804*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4807*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4802*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4805*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4808*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4803*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4806*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4809*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4810*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4801*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4802*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4803*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4804*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4805*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4806*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4807*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4808*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4809*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4804*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4807*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4805*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4808*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4806*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4809*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4801*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4807*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4802*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4808*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4803*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4809*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4801*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4804*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4802*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4805*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4803*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4806*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4807*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4808*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4809*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4804*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4805*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4806*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4801*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4802*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4803*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4807*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4808*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4809*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4804*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4805*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4806*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4801*Dummy_4801)*tmp_q_103 + (Dummy_4802*Dummy_4802)*tmp_q_103 + (Dummy_4803*Dummy_4803)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4804*Dummy_4804)*tmp_q_107 + (Dummy_4805*Dummy_4805)*tmp_q_107 + (Dummy_4806*Dummy_4806)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4807*Dummy_4807)*tmp_q_108 + (Dummy_4808*Dummy_4808)*tmp_q_108 + (Dummy_4809*Dummy_4809)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4802*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4803*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4801*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_5 = Dummy_4784*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4787*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4790*tmp_q_4;
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = Dummy_4785*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4788*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4791*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4786*tmp_q_4;
+                   const double tmp_q_23 = Dummy_4789*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4792*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4793*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = Dummy_4787*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4790*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = Dummy_4788*tmp_q_0;
+                   const double tmp_q_35 = Dummy_4791*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = Dummy_4789*tmp_q_0;
+                   const double tmp_q_39 = Dummy_4792*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = Dummy_4784*tmp_q_0;
+                   const double tmp_q_43 = Dummy_4790*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = Dummy_4785*tmp_q_0;
+                   const double tmp_q_47 = Dummy_4791*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = Dummy_4786*tmp_q_0;
+                   const double tmp_q_51 = Dummy_4792*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = Dummy_4784*tmp_q_2;
+                   const double tmp_q_55 = Dummy_4787*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = Dummy_4785*tmp_q_2;
+                   const double tmp_q_59 = Dummy_4788*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = Dummy_4786*tmp_q_2;
+                   const double tmp_q_63 = Dummy_4789*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((Dummy_4784*Dummy_4784)*tmp_q_27 + (Dummy_4785*Dummy_4785)*tmp_q_27 + (Dummy_4786*Dummy_4786)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((Dummy_4787*Dummy_4787)*tmp_q_28 + (Dummy_4788*Dummy_4788)*tmp_q_28 + (Dummy_4789*Dummy_4789)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((Dummy_4790*Dummy_4790)*tmp_q_29 + (Dummy_4791*Dummy_4791)*tmp_q_29 + (Dummy_4792*Dummy_4792)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((Dummy_4790*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4790*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4791*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4791*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4792*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4792*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((Dummy_4787*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4787*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4788*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4788*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4789*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4789*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((Dummy_4784*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4784*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4785*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4785*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4786*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4786*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -2490,69 +1086,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -2561,281 +1112,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4841*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832),_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833),_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834),_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835),_mm256_set_pd(Dummy_4835,Dummy_4835,Dummy_4835,Dummy_4835))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836),_mm256_set_pd(Dummy_4836,Dummy_4836,Dummy_4836,Dummy_4836)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837),_mm256_set_pd(Dummy_4837,Dummy_4837,Dummy_4837,Dummy_4837)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838),_mm256_set_pd(Dummy_4838,Dummy_4838,Dummy_4838,Dummy_4838))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839),_mm256_set_pd(Dummy_4839,Dummy_4839,Dummy_4839,Dummy_4839)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840),_mm256_set_pd(Dummy_4840,Dummy_4840,Dummy_4840,Dummy_4840)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4832,Dummy_4832,Dummy_4832,Dummy_4832)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4833,Dummy_4833,Dummy_4833,Dummy_4833))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4834,Dummy_4834,Dummy_4834,Dummy_4834))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823));
+                   const double tmp_q_25 = Dummy_4824*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815),_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816),_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817),_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818),_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819),_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820),_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821),_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822),_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823),_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4821,Dummy_4821,Dummy_4821,Dummy_4821)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4822,Dummy_4822,Dummy_4822,Dummy_4822))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4823,Dummy_4823,Dummy_4823,Dummy_4823))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4818,Dummy_4818,Dummy_4818,Dummy_4818)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4819,Dummy_4819,Dummy_4819,Dummy_4819))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4820,Dummy_4820,Dummy_4820,Dummy_4820))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4815,Dummy_4815,Dummy_4815,Dummy_4815)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4816,Dummy_4816,Dummy_4816,Dummy_4816))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4817,Dummy_4817,Dummy_4817,Dummy_4817))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -2860,69 +1222,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -2931,281 +1248,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4832*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4835*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4838*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4833*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4836*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4839*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4834*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4837*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4840*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4841*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4832*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4833*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4834*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4835*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4836*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4837*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4838*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4839*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4840*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4835*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4838*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4836*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4839*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4837*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4840*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4832*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4838*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4833*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4839*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4834*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4840*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4832*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4835*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4833*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4836*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4834*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4837*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4838*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4839*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4840*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4835*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4836*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4837*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4832*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4833*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4834*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4838*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4839*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4840*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4835*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4836*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4837*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4832*Dummy_4832)*tmp_q_103 + (Dummy_4833*Dummy_4833)*tmp_q_103 + (Dummy_4834*Dummy_4834)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4835*Dummy_4835)*tmp_q_107 + (Dummy_4836*Dummy_4836)*tmp_q_107 + (Dummy_4837*Dummy_4837)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4838*Dummy_4838)*tmp_q_108 + (Dummy_4839*Dummy_4839)*tmp_q_108 + (Dummy_4840*Dummy_4840)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4833*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4834*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4832*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_5 = Dummy_4815*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4818*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4821*tmp_q_4;
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = Dummy_4816*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4819*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4822*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4817*tmp_q_4;
+                   const double tmp_q_23 = Dummy_4820*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4823*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4824*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = Dummy_4818*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4821*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = Dummy_4819*tmp_q_0;
+                   const double tmp_q_35 = Dummy_4822*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = Dummy_4820*tmp_q_0;
+                   const double tmp_q_39 = Dummy_4823*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = Dummy_4815*tmp_q_0;
+                   const double tmp_q_43 = Dummy_4821*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = Dummy_4816*tmp_q_0;
+                   const double tmp_q_47 = Dummy_4822*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = Dummy_4817*tmp_q_0;
+                   const double tmp_q_51 = Dummy_4823*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = Dummy_4815*tmp_q_2;
+                   const double tmp_q_55 = Dummy_4818*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = Dummy_4816*tmp_q_2;
+                   const double tmp_q_59 = Dummy_4819*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = Dummy_4817*tmp_q_2;
+                   const double tmp_q_63 = Dummy_4820*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((Dummy_4815*Dummy_4815)*tmp_q_27 + (Dummy_4816*Dummy_4816)*tmp_q_27 + (Dummy_4817*Dummy_4817)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((Dummy_4818*Dummy_4818)*tmp_q_28 + (Dummy_4819*Dummy_4819)*tmp_q_28 + (Dummy_4820*Dummy_4820)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((Dummy_4821*Dummy_4821)*tmp_q_29 + (Dummy_4822*Dummy_4822)*tmp_q_29 + (Dummy_4823*Dummy_4823)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((Dummy_4821*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4821*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4822*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4822*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4823*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4823*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((Dummy_4818*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4818*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4819*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4819*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4820*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4820*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((Dummy_4815*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4815*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4816*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4816*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4817*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4817*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -3234,69 +1362,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -3305,281 +1388,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4872*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863),_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864),_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865),_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866),_mm256_set_pd(Dummy_4866,Dummy_4866,Dummy_4866,Dummy_4866))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867),_mm256_set_pd(Dummy_4867,Dummy_4867,Dummy_4867,Dummy_4867)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868),_mm256_set_pd(Dummy_4868,Dummy_4868,Dummy_4868,Dummy_4868)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869),_mm256_set_pd(Dummy_4869,Dummy_4869,Dummy_4869,Dummy_4869))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870),_mm256_set_pd(Dummy_4870,Dummy_4870,Dummy_4870,Dummy_4870)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871),_mm256_set_pd(Dummy_4871,Dummy_4871,Dummy_4871,Dummy_4871)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4863,Dummy_4863,Dummy_4863,Dummy_4863)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4864,Dummy_4864,Dummy_4864,Dummy_4864))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4865,Dummy_4865,Dummy_4865,Dummy_4865))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854));
+                   const double tmp_q_25 = Dummy_4855*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846),_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847),_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848),_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849),_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850),_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851),_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852),_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853),_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854),_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4852,Dummy_4852,Dummy_4852,Dummy_4852)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4853,Dummy_4853,Dummy_4853,Dummy_4853))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4854,Dummy_4854,Dummy_4854,Dummy_4854))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4849,Dummy_4849,Dummy_4849,Dummy_4849)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4850,Dummy_4850,Dummy_4850,Dummy_4850))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4851,Dummy_4851,Dummy_4851,Dummy_4851))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4846,Dummy_4846,Dummy_4846,Dummy_4846)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4847,Dummy_4847,Dummy_4847,Dummy_4847))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4848,Dummy_4848,Dummy_4848,Dummy_4848))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -3604,69 +1498,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -3675,281 +1524,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4863*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4866*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4869*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4864*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4867*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4870*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4865*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4868*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4871*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4872*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4863*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4864*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4865*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4866*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4867*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4868*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4869*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4870*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4871*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4866*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4869*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4867*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4870*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4868*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4871*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4863*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4869*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4864*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4870*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4865*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4871*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4863*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4866*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4864*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4867*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4865*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4868*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4869*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4870*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4871*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4866*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4867*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4868*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4863*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4864*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4865*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4869*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4870*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4871*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4866*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4867*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4868*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4863*Dummy_4863)*tmp_q_103 + (Dummy_4864*Dummy_4864)*tmp_q_103 + (Dummy_4865*Dummy_4865)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4866*Dummy_4866)*tmp_q_107 + (Dummy_4867*Dummy_4867)*tmp_q_107 + (Dummy_4868*Dummy_4868)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4869*Dummy_4869)*tmp_q_108 + (Dummy_4870*Dummy_4870)*tmp_q_108 + (Dummy_4871*Dummy_4871)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4864*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4865*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4863*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_5 = Dummy_4846*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4849*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4852*tmp_q_4;
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = Dummy_4847*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4850*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4853*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4848*tmp_q_4;
+                   const double tmp_q_23 = Dummy_4851*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4854*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4855*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = Dummy_4849*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4852*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = Dummy_4850*tmp_q_0;
+                   const double tmp_q_35 = Dummy_4853*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = Dummy_4851*tmp_q_0;
+                   const double tmp_q_39 = Dummy_4854*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = Dummy_4846*tmp_q_0;
+                   const double tmp_q_43 = Dummy_4852*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = Dummy_4847*tmp_q_0;
+                   const double tmp_q_47 = Dummy_4853*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = Dummy_4848*tmp_q_0;
+                   const double tmp_q_51 = Dummy_4854*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = Dummy_4846*tmp_q_2;
+                   const double tmp_q_55 = Dummy_4849*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = Dummy_4847*tmp_q_2;
+                   const double tmp_q_59 = Dummy_4850*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = Dummy_4848*tmp_q_2;
+                   const double tmp_q_63 = Dummy_4851*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((Dummy_4846*Dummy_4846)*tmp_q_27 + (Dummy_4847*Dummy_4847)*tmp_q_27 + (Dummy_4848*Dummy_4848)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((Dummy_4849*Dummy_4849)*tmp_q_28 + (Dummy_4850*Dummy_4850)*tmp_q_28 + (Dummy_4851*Dummy_4851)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((Dummy_4852*Dummy_4852)*tmp_q_29 + (Dummy_4853*Dummy_4853)*tmp_q_29 + (Dummy_4854*Dummy_4854)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((Dummy_4852*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4852*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4853*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4853*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4854*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4854*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((Dummy_4849*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4849*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4850*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4850*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4851*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4851*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((Dummy_4846*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4846*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4847*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4847*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4848*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4848*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
@@ -3978,69 +1638,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
              {
                 const __m256d k_dof_4 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
-                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_1 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]);
-                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_7 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 const __m256d k_dof_6 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]);
+                const __m256d k_dof_9 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
+                const __m256d k_dof_2 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]);
                 const __m256d k_dof_8 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]);
+                const __m256d k_dof_3 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]);
                 const __m256d k_dof_0 = _mm256_loadu_pd(& _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]);
-                const __m256d k_dof_5 = _mm256_loadu_pd(& _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]);
                 __m256d q_acc_0_0 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_0_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_1_1 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_1_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_2_2 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_2_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_3_3 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_3_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_4_4 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_4_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_5_5 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_5_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_6_6 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_6_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_7_7 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_7_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_8_8 = _mm256_set_pd(0.0,0.0,0.0,0.0);
-                __m256d q_acc_8_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 __m256d q_acc_9_9 = _mm256_set_pd(0.0,0.0,0.0,0.0);
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -4049,281 +1664,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const __m256d tmp_q_2 = _mm256_mul_pd(_mm256_set_pd(4.0,4.0,4.0,4.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
                    const __m256d tmp_q_3 = _mm256_add_pd(tmp_q_1,tmp_q_2);
                    const __m256d tmp_q_4 = _mm256_add_pd(_mm256_add_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),tmp_q_0),tmp_q_3);
-                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894));
-                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897));
-                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900));
-                   const __m256d tmp_q_8 = _mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7);
-                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_11 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_12 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
-                   const __m256d tmp_q_13 = _mm256_mul_pd(tmp_q_12,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_14 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
-                   const __m256d tmp_q_15 = _mm256_mul_pd(tmp_q_14,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_16 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
-                   const __m256d tmp_q_17 = _mm256_mul_pd(tmp_q_16,_mm256_set_pd(2.0,2.0,2.0,2.0));
-                   const __m256d tmp_q_18 = _mm256_add_pd(tmp_q_10,tmp_q_11);
-                   const __m256d tmp_q_19 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_13)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_15))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_17))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_12,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_16,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_14,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_13),tmp_q_15),tmp_q_17),tmp_q_18),tmp_q_9))),_mm256_mul_pd(k_dof_4,tmp_q_9)),_mm256_mul_pd(k_dof_5,tmp_q_10)),_mm256_mul_pd(k_dof_6,tmp_q_11));
-                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895));
-                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898));
-                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901));
-                   const __m256d tmp_q_23 = _mm256_add_pd(_mm256_add_pd(tmp_q_20,tmp_q_21),tmp_q_22);
-                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896));
-                   const __m256d tmp_q_25 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899));
-                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902));
-                   const __m256d tmp_q_27 = _mm256_add_pd(_mm256_add_pd(tmp_q_24,tmp_q_25),tmp_q_26);
-                   const double tmp_q_28 = Dummy_4903*_data_q_w[q];
-                   const __m256d tmp_q_29 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_1);
-                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894));
-                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_19,tmp_q_8);
-                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895));
-                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_19,tmp_q_23);
-                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_29,_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896));
-                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_19,tmp_q_27);
-                   const __m256d tmp_q_36 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_2);
-                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897));
-                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898));
-                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_36,_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899));
-                   const __m256d tmp_q_40 = _mm256_add_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),tmp_q_0);
-                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900));
-                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901));
-                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_40,_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902));
-                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897));
-                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_19,tmp_q_44);
-                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900));
-                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_19,tmp_q_46);
-                   const __m256d tmp_q_48 = _mm256_add_pd(tmp_q_45,tmp_q_47);
-                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898));
-                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_19,tmp_q_49);
-                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901));
-                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_19,tmp_q_51);
-                   const __m256d tmp_q_53 = _mm256_add_pd(tmp_q_50,tmp_q_52);
-                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899));
-                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_19,tmp_q_54);
-                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902));
-                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_19,tmp_q_56);
-                   const __m256d tmp_q_58 = _mm256_add_pd(tmp_q_55,tmp_q_57);
-                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894));
-                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_19,tmp_q_59);
-                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900));
-                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_19,tmp_q_61);
-                   const __m256d tmp_q_63 = _mm256_add_pd(tmp_q_60,tmp_q_62);
-                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895));
-                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_19,tmp_q_64);
-                   const __m256d tmp_q_66 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901));
-                   const __m256d tmp_q_67 = _mm256_mul_pd(tmp_q_19,tmp_q_66);
-                   const __m256d tmp_q_68 = _mm256_add_pd(tmp_q_65,tmp_q_67);
-                   const __m256d tmp_q_69 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896));
-                   const __m256d tmp_q_70 = _mm256_mul_pd(tmp_q_19,tmp_q_69);
-                   const __m256d tmp_q_71 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902));
-                   const __m256d tmp_q_72 = _mm256_mul_pd(tmp_q_19,tmp_q_71);
-                   const __m256d tmp_q_73 = _mm256_add_pd(tmp_q_70,tmp_q_72);
-                   const __m256d tmp_q_74 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894));
-                   const __m256d tmp_q_75 = _mm256_mul_pd(tmp_q_19,tmp_q_74);
-                   const __m256d tmp_q_76 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897));
-                   const __m256d tmp_q_77 = _mm256_mul_pd(tmp_q_19,tmp_q_76);
-                   const __m256d tmp_q_78 = _mm256_add_pd(tmp_q_75,tmp_q_77);
-                   const __m256d tmp_q_79 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895));
-                   const __m256d tmp_q_80 = _mm256_mul_pd(tmp_q_19,tmp_q_79);
-                   const __m256d tmp_q_81 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898));
-                   const __m256d tmp_q_82 = _mm256_mul_pd(tmp_q_19,tmp_q_81);
-                   const __m256d tmp_q_83 = _mm256_add_pd(tmp_q_80,tmp_q_82);
-                   const __m256d tmp_q_84 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896));
-                   const __m256d tmp_q_85 = _mm256_mul_pd(tmp_q_19,tmp_q_84);
-                   const __m256d tmp_q_86 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899));
-                   const __m256d tmp_q_87 = _mm256_mul_pd(tmp_q_19,tmp_q_86);
-                   const __m256d tmp_q_88 = _mm256_add_pd(tmp_q_85,tmp_q_87);
-                   const __m256d tmp_q_89 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
-                   const __m256d tmp_q_90 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900)));
-                   const __m256d tmp_q_91 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901)));
-                   const __m256d tmp_q_92 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_70,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_89),_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902)));
-                   const __m256d tmp_q_93 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
-                   const __m256d tmp_q_94 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
-                   const __m256d tmp_q_95 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_75,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897)));
-                   const __m256d tmp_q_96 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_80,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898)));
-                   const __m256d tmp_q_97 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_85,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_94),_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899)));
-                   const __m256d tmp_q_98 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_93,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
-                   const __m256d tmp_q_99 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_77,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894)));
-                   const __m256d tmp_q_100 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_82,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895)));
-                   const __m256d tmp_q_101 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_72,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_87,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_98),_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896)));
-                   const __m256d tmp_q_102 = _mm256_mul_pd(tmp_q_19,_mm256_set_pd(16.0,16.0,16.0,16.0));
-                   const __m256d tmp_q_103 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
-                   const __m256d tmp_q_104 = _mm256_mul_pd(tmp_q_19,tmp_q_30);
-                   const __m256d tmp_q_105 = _mm256_mul_pd(tmp_q_19,tmp_q_32);
-                   const __m256d tmp_q_106 = _mm256_mul_pd(tmp_q_19,tmp_q_34);
-                   const __m256d tmp_q_107 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
-                   const __m256d tmp_q_108 = _mm256_mul_pd(tmp_q_102,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
-                   const __m256d tmp_q_109 = _mm256_add_pd(tmp_q_44,tmp_q_46);
-                   const __m256d tmp_q_110 = _mm256_add_pd(tmp_q_49,tmp_q_51);
-                   const __m256d tmp_q_111 = _mm256_add_pd(tmp_q_54,tmp_q_56);
-                   const __m256d tmp_q_112 = _mm256_add_pd(tmp_q_59,tmp_q_61);
-                   const __m256d tmp_q_113 = _mm256_add_pd(tmp_q_64,tmp_q_66);
-                   const __m256d tmp_q_114 = _mm256_add_pd(tmp_q_69,tmp_q_71);
-                   const __m256d tmp_q_115 = _mm256_add_pd(tmp_q_74,tmp_q_76);
-                   const __m256d tmp_q_116 = _mm256_add_pd(tmp_q_79,tmp_q_81);
-                   const __m256d tmp_q_117 = _mm256_add_pd(tmp_q_84,tmp_q_86);
-                   const __m256d tmp_q_118 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900)));
-                   const __m256d tmp_q_119 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901)));
-                   const __m256d tmp_q_120 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_89,_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902)));
-                   const __m256d tmp_q_121 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_74,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897)));
-                   const __m256d tmp_q_122 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_79,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898)));
-                   const __m256d tmp_q_123 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_84,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_94,_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899)));
-                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_20),_mm256_mul_pd(tmp_q_19,tmp_q_21)),_mm256_mul_pd(tmp_q_19,tmp_q_22))),_mm256_mul_pd(tmp_q_27,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_24),_mm256_mul_pd(tmp_q_19,tmp_q_25)),_mm256_mul_pd(tmp_q_19,tmp_q_26)))),_mm256_mul_pd(tmp_q_8,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_19,tmp_q_5),_mm256_mul_pd(tmp_q_19,tmp_q_6)),_mm256_mul_pd(tmp_q_19,tmp_q_7)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_31),_mm256_mul_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(tmp_q_34,tmp_q_35)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_37),_mm256_mul_pd(tmp_q_33,tmp_q_38)),_mm256_mul_pd(tmp_q_35,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,tmp_q_41),_mm256_mul_pd(tmp_q_33,tmp_q_42)),_mm256_mul_pd(tmp_q_35,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_53),_mm256_mul_pd(tmp_q_27,tmp_q_58)),_mm256_mul_pd(tmp_q_48,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_68),_mm256_mul_pd(tmp_q_27,tmp_q_73)),_mm256_mul_pd(tmp_q_63,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_83),_mm256_mul_pd(tmp_q_27,tmp_q_88)),_mm256_mul_pd(tmp_q_78,tmp_q_8)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_91),_mm256_mul_pd(tmp_q_27,tmp_q_92)),_mm256_mul_pd(tmp_q_8,tmp_q_90)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_23,tmp_q_96),_mm256_mul_pd(tmp_q_27,tmp_q_97)),_mm256_mul_pd(tmp_q_8,tmp_q_95)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_0_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_23),_mm256_mul_pd(tmp_q_101,tmp_q_27)),_mm256_mul_pd(tmp_q_8,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894),_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895),_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895)))),_mm256_mul_pd(tmp_q_103,_mm256_mul_pd(_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896),_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_37),_mm256_mul_pd(tmp_q_105,tmp_q_38)),_mm256_mul_pd(tmp_q_106,tmp_q_39)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_104,tmp_q_41),_mm256_mul_pd(tmp_q_105,tmp_q_42)),_mm256_mul_pd(tmp_q_106,tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_48),_mm256_mul_pd(tmp_q_32,tmp_q_53)),_mm256_mul_pd(tmp_q_34,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_63),_mm256_mul_pd(tmp_q_32,tmp_q_68)),_mm256_mul_pd(tmp_q_34,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_78),_mm256_mul_pd(tmp_q_32,tmp_q_83)),_mm256_mul_pd(tmp_q_34,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_90),_mm256_mul_pd(tmp_q_32,tmp_q_91)),_mm256_mul_pd(tmp_q_34,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,tmp_q_95),_mm256_mul_pd(tmp_q_32,tmp_q_96)),_mm256_mul_pd(tmp_q_34,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_1_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_32),_mm256_mul_pd(tmp_q_101,tmp_q_34)),_mm256_mul_pd(tmp_q_30,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897),_mm256_set_pd(Dummy_4897,Dummy_4897,Dummy_4897,Dummy_4897))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898),_mm256_set_pd(Dummy_4898,Dummy_4898,Dummy_4898,Dummy_4898)))),_mm256_mul_pd(tmp_q_107,_mm256_mul_pd(_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899),_mm256_set_pd(Dummy_4899,Dummy_4899,Dummy_4899,Dummy_4899)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_37),tmp_q_41),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_38),tmp_q_42)),_mm256_mul_pd(_mm256_mul_pd(tmp_q_19,tmp_q_39),tmp_q_43)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_48),_mm256_mul_pd(tmp_q_38,tmp_q_53)),_mm256_mul_pd(tmp_q_39,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_63),_mm256_mul_pd(tmp_q_38,tmp_q_68)),_mm256_mul_pd(tmp_q_39,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_78),_mm256_mul_pd(tmp_q_38,tmp_q_83)),_mm256_mul_pd(tmp_q_39,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_90),_mm256_mul_pd(tmp_q_38,tmp_q_91)),_mm256_mul_pd(tmp_q_39,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,tmp_q_95),_mm256_mul_pd(tmp_q_38,tmp_q_96)),_mm256_mul_pd(tmp_q_39,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_2_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_38),_mm256_mul_pd(tmp_q_101,tmp_q_39)),_mm256_mul_pd(tmp_q_37,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900),_mm256_set_pd(Dummy_4900,Dummy_4900,Dummy_4900,Dummy_4900))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901),_mm256_set_pd(Dummy_4901,Dummy_4901,Dummy_4901,Dummy_4901)))),_mm256_mul_pd(tmp_q_108,_mm256_mul_pd(_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902),_mm256_set_pd(Dummy_4902,Dummy_4902,Dummy_4902,Dummy_4902)))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_48),_mm256_mul_pd(tmp_q_42,tmp_q_53)),_mm256_mul_pd(tmp_q_43,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_63),_mm256_mul_pd(tmp_q_42,tmp_q_68)),_mm256_mul_pd(tmp_q_43,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_78),_mm256_mul_pd(tmp_q_42,tmp_q_83)),_mm256_mul_pd(tmp_q_43,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_90),_mm256_mul_pd(tmp_q_42,tmp_q_91)),_mm256_mul_pd(tmp_q_43,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,tmp_q_95),_mm256_mul_pd(tmp_q_42,tmp_q_96)),_mm256_mul_pd(tmp_q_43,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_3_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_42),_mm256_mul_pd(tmp_q_101,tmp_q_43)),_mm256_mul_pd(tmp_q_41,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_48),_mm256_mul_pd(tmp_q_110,tmp_q_53)),_mm256_mul_pd(tmp_q_111,tmp_q_58)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_63),_mm256_mul_pd(tmp_q_110,tmp_q_68)),_mm256_mul_pd(tmp_q_111,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_78),_mm256_mul_pd(tmp_q_110,tmp_q_83)),_mm256_mul_pd(tmp_q_111,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_90),_mm256_mul_pd(tmp_q_110,tmp_q_91)),_mm256_mul_pd(tmp_q_111,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_109,tmp_q_95),_mm256_mul_pd(tmp_q_110,tmp_q_96)),_mm256_mul_pd(tmp_q_111,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_4_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_110),_mm256_mul_pd(tmp_q_101,tmp_q_111)),_mm256_mul_pd(tmp_q_109,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_63),_mm256_mul_pd(tmp_q_113,tmp_q_68)),_mm256_mul_pd(tmp_q_114,tmp_q_73)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_78),_mm256_mul_pd(tmp_q_113,tmp_q_83)),_mm256_mul_pd(tmp_q_114,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_90),_mm256_mul_pd(tmp_q_113,tmp_q_91)),_mm256_mul_pd(tmp_q_114,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_112,tmp_q_95),_mm256_mul_pd(tmp_q_113,tmp_q_96)),_mm256_mul_pd(tmp_q_114,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_5_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_113),_mm256_mul_pd(tmp_q_101,tmp_q_114)),_mm256_mul_pd(tmp_q_112,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_78),_mm256_mul_pd(tmp_q_116,tmp_q_83)),_mm256_mul_pd(tmp_q_117,tmp_q_88)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_90),_mm256_mul_pd(tmp_q_116,tmp_q_91)),_mm256_mul_pd(tmp_q_117,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_115,tmp_q_95),_mm256_mul_pd(tmp_q_116,tmp_q_96)),_mm256_mul_pd(tmp_q_117,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_6_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_116),_mm256_mul_pd(tmp_q_101,tmp_q_117)),_mm256_mul_pd(tmp_q_115,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_90),_mm256_mul_pd(tmp_q_119,tmp_q_91)),_mm256_mul_pd(tmp_q_120,tmp_q_92)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_118,tmp_q_95),_mm256_mul_pd(tmp_q_119,tmp_q_96)),_mm256_mul_pd(tmp_q_120,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_7_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_119),_mm256_mul_pd(tmp_q_101,tmp_q_120)),_mm256_mul_pd(tmp_q_118,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_121,tmp_q_95),_mm256_mul_pd(tmp_q_122,tmp_q_96)),_mm256_mul_pd(tmp_q_123,tmp_q_97)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_8_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_100,tmp_q_122),_mm256_mul_pd(tmp_q_101,tmp_q_123)),_mm256_mul_pd(tmp_q_121,tmp_q_99)),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
-                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_99,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_76,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4894,Dummy_4894,Dummy_4894,Dummy_4894)))),_mm256_mul_pd(tmp_q_100,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_66,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_81,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4895,Dummy_4895,Dummy_4895,Dummy_4895))))),_mm256_mul_pd(tmp_q_101,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_71,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_86,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_98,_mm256_set_pd(Dummy_4896,Dummy_4896,Dummy_4896,Dummy_4896))))),_mm256_set_pd(tmp_q_28,tmp_q_28,tmp_q_28,tmp_q_28));
+                   const __m256d tmp_q_5 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877));
+                   const __m256d tmp_q_6 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880));
+                   const __m256d tmp_q_7 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883));
+                   const __m256d tmp_q_8 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_9 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_10 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_11 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]));
+                   const __m256d tmp_q_12 = _mm256_mul_pd(tmp_q_11,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_13 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]));
+                   const __m256d tmp_q_14 = _mm256_mul_pd(tmp_q_13,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_15 = _mm256_mul_pd(_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]));
+                   const __m256d tmp_q_16 = _mm256_mul_pd(tmp_q_15,_mm256_set_pd(2.0,2.0,2.0,2.0));
+                   const __m256d tmp_q_17 = _mm256_add_pd(tmp_q_10,tmp_q_9);
+                   const __m256d tmp_q_18 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(k_dof_1,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),tmp_q_12)),_mm256_mul_pd(k_dof_2,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),tmp_q_14))),_mm256_mul_pd(k_dof_3,_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),tmp_q_16))),_mm256_mul_pd(k_dof_9,_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_17,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_11,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_1))),_mm256_mul_pd(k_dof_8,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_10,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_13,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_2))),_mm256_mul_pd(k_dof_7,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_8,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_9,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_15,_mm256_set_pd(-4.0,-4.0,-4.0,-4.0))),tmp_q_0))),_mm256_mul_pd(k_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))),_mm256_mul_pd(_mm256_set_pd(-3.0,-3.0,-3.0,-3.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),tmp_q_12),tmp_q_14),tmp_q_16),tmp_q_17),tmp_q_8))),_mm256_mul_pd(k_dof_4,tmp_q_8)),_mm256_mul_pd(k_dof_5,tmp_q_9)),_mm256_mul_pd(k_dof_6,tmp_q_10));
+                   const __m256d tmp_q_19 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878));
+                   const __m256d tmp_q_20 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881));
+                   const __m256d tmp_q_21 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884));
+                   const __m256d tmp_q_22 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879));
+                   const __m256d tmp_q_23 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882));
+                   const __m256d tmp_q_24 = _mm256_mul_pd(tmp_q_4,_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885));
+                   const double tmp_q_25 = Dummy_4886*_data_q_w[q];
+                   const __m256d tmp_q_26 = _mm256_mul_pd(tmp_q_18,_mm256_set_pd(16.0,16.0,16.0,16.0));
+                   const __m256d tmp_q_27 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q]))));
+                   const __m256d tmp_q_28 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q]))));
+                   const __m256d tmp_q_29 = _mm256_mul_pd(tmp_q_26,_mm256_mul_pd(_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q])),_mm256_add_pd(_mm256_set_pd(-0.25,-0.25,-0.25,-0.25),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))));
+                   const __m256d tmp_q_30 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880));
+                   const __m256d tmp_q_31 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883));
+                   const __m256d tmp_q_32 = _mm256_mul_pd(tmp_q_18,tmp_q_30);
+                   const __m256d tmp_q_33 = _mm256_mul_pd(tmp_q_18,tmp_q_31);
+                   const __m256d tmp_q_34 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881));
+                   const __m256d tmp_q_35 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884));
+                   const __m256d tmp_q_36 = _mm256_mul_pd(tmp_q_18,tmp_q_34);
+                   const __m256d tmp_q_37 = _mm256_mul_pd(tmp_q_18,tmp_q_35);
+                   const __m256d tmp_q_38 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882));
+                   const __m256d tmp_q_39 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885));
+                   const __m256d tmp_q_40 = _mm256_mul_pd(tmp_q_18,tmp_q_38);
+                   const __m256d tmp_q_41 = _mm256_mul_pd(tmp_q_18,tmp_q_39);
+                   const __m256d tmp_q_42 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877));
+                   const __m256d tmp_q_43 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883));
+                   const __m256d tmp_q_44 = _mm256_mul_pd(tmp_q_18,tmp_q_42);
+                   const __m256d tmp_q_45 = _mm256_mul_pd(tmp_q_18,tmp_q_43);
+                   const __m256d tmp_q_46 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878));
+                   const __m256d tmp_q_47 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884));
+                   const __m256d tmp_q_48 = _mm256_mul_pd(tmp_q_18,tmp_q_46);
+                   const __m256d tmp_q_49 = _mm256_mul_pd(tmp_q_18,tmp_q_47);
+                   const __m256d tmp_q_50 = _mm256_mul_pd(tmp_q_0,_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879));
+                   const __m256d tmp_q_51 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885));
+                   const __m256d tmp_q_52 = _mm256_mul_pd(tmp_q_18,tmp_q_50);
+                   const __m256d tmp_q_53 = _mm256_mul_pd(tmp_q_18,tmp_q_51);
+                   const __m256d tmp_q_54 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877));
+                   const __m256d tmp_q_55 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880));
+                   const __m256d tmp_q_56 = _mm256_mul_pd(tmp_q_18,tmp_q_54);
+                   const __m256d tmp_q_57 = _mm256_mul_pd(tmp_q_18,tmp_q_55);
+                   const __m256d tmp_q_58 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878));
+                   const __m256d tmp_q_59 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881));
+                   const __m256d tmp_q_60 = _mm256_mul_pd(tmp_q_18,tmp_q_58);
+                   const __m256d tmp_q_61 = _mm256_mul_pd(tmp_q_18,tmp_q_59);
+                   const __m256d tmp_q_62 = _mm256_mul_pd(tmp_q_2,_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879));
+                   const __m256d tmp_q_63 = _mm256_mul_pd(tmp_q_1,_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882));
+                   const __m256d tmp_q_64 = _mm256_mul_pd(tmp_q_18,tmp_q_62);
+                   const __m256d tmp_q_65 = _mm256_mul_pd(tmp_q_18,tmp_q_63);
+                   const __m256d tmp_q_66 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_3,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q],_data_q_p_2[q]))),_mm256_set_pd(4.0,4.0,4.0,4.0));
+                   const __m256d tmp_q_67 = _mm256_add_pd(_mm256_set_pd(-4.0,-4.0,-4.0,-4.0),tmp_q_0);
+                   const __m256d tmp_q_68 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_1,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q],_data_q_p_1[q])));
+                   const __m256d tmp_q_69 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_2,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_67,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_set_pd(-8.0,-8.0,-8.0,-8.0),_mm256_set_pd(_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q],_data_q_p_0[q])));
+                   const __m256d res_tmp_0_0 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_19,tmp_q_20),tmp_q_21),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_19),_mm256_mul_pd(tmp_q_18,tmp_q_20)),_mm256_mul_pd(tmp_q_18,tmp_q_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_22,tmp_q_23),tmp_q_24),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_22),_mm256_mul_pd(tmp_q_18,tmp_q_23)),_mm256_mul_pd(tmp_q_18,tmp_q_24)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(tmp_q_5,tmp_q_6),tmp_q_7),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_18,tmp_q_5),_mm256_mul_pd(tmp_q_18,tmp_q_6)),_mm256_mul_pd(tmp_q_18,tmp_q_7)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_1_1 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877),_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878),_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878)))),_mm256_mul_pd(tmp_q_27,_mm256_mul_pd(_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879),_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_2_2 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880),_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881),_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881)))),_mm256_mul_pd(tmp_q_28,_mm256_mul_pd(_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882),_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_3_3 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883),_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884),_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884)))),_mm256_mul_pd(tmp_q_29,_mm256_mul_pd(_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885),_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885)))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_4_4 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_30,tmp_q_31),_mm256_add_pd(tmp_q_32,tmp_q_33)),_mm256_mul_pd(_mm256_add_pd(tmp_q_34,tmp_q_35),_mm256_add_pd(tmp_q_36,tmp_q_37))),_mm256_mul_pd(_mm256_add_pd(tmp_q_38,tmp_q_39),_mm256_add_pd(tmp_q_40,tmp_q_41))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_5_5 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_42,tmp_q_43),_mm256_add_pd(tmp_q_44,tmp_q_45)),_mm256_mul_pd(_mm256_add_pd(tmp_q_46,tmp_q_47),_mm256_add_pd(tmp_q_48,tmp_q_49))),_mm256_mul_pd(_mm256_add_pd(tmp_q_50,tmp_q_51),_mm256_add_pd(tmp_q_52,tmp_q_53))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_6_6 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(tmp_q_54,tmp_q_55),_mm256_add_pd(tmp_q_56,tmp_q_57)),_mm256_mul_pd(_mm256_add_pd(tmp_q_58,tmp_q_59),_mm256_add_pd(tmp_q_60,tmp_q_61))),_mm256_mul_pd(_mm256_add_pd(tmp_q_62,tmp_q_63),_mm256_add_pd(tmp_q_64,tmp_q_65))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_7_7 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_30,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_42,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_32,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_44,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4883,Dummy_4883,Dummy_4883,Dummy_4883)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_34,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_46,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_36,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_48,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4884,Dummy_4884,Dummy_4884,Dummy_4884))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_38,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_50,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_66,_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_40,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_52,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_66),_mm256_set_pd(Dummy_4885,Dummy_4885,Dummy_4885,Dummy_4885))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_8_8 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_31,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_54,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_33,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_56,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4880,Dummy_4880,Dummy_4880,Dummy_4880)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_35,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_58,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_37,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_60,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4881,Dummy_4881,Dummy_4881,Dummy_4881))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_39,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_62,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_68,_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_41,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_64,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_68),_mm256_set_pd(Dummy_4882,Dummy_4882,Dummy_4882,Dummy_4882))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
+                   const __m256d res_tmp_9_9 = _mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_43,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_55,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_45,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_57,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4877,Dummy_4877,Dummy_4877,Dummy_4877)))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_47,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_59,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_49,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_61,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4878,Dummy_4878,Dummy_4878,Dummy_4878))))),_mm256_mul_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_51,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_63,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(tmp_q_69,_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879))),_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_q_53,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0)),_mm256_mul_pd(tmp_q_65,_mm256_set_pd(-1.0,-1.0,-1.0,-1.0))),_mm256_mul_pd(_mm256_mul_pd(tmp_q_18,tmp_q_69),_mm256_set_pd(Dummy_4879,Dummy_4879,Dummy_4879,Dummy_4879))))),_mm256_set_pd(tmp_q_25,tmp_q_25,tmp_q_25,tmp_q_25));
                    q_acc_0_0 = _mm256_add_pd(q_acc_0_0,res_tmp_0_0);
-                   q_acc_0_1 = _mm256_add_pd(q_acc_0_1,res_tmp_0_1);
-                   q_acc_0_2 = _mm256_add_pd(q_acc_0_2,res_tmp_0_2);
-                   q_acc_0_3 = _mm256_add_pd(q_acc_0_3,res_tmp_0_3);
-                   q_acc_0_4 = _mm256_add_pd(q_acc_0_4,res_tmp_0_4);
-                   q_acc_0_5 = _mm256_add_pd(q_acc_0_5,res_tmp_0_5);
-                   q_acc_0_6 = _mm256_add_pd(q_acc_0_6,res_tmp_0_6);
-                   q_acc_0_7 = _mm256_add_pd(q_acc_0_7,res_tmp_0_7);
-                   q_acc_0_8 = _mm256_add_pd(q_acc_0_8,res_tmp_0_8);
-                   q_acc_0_9 = _mm256_add_pd(q_acc_0_9,res_tmp_0_9);
                    q_acc_1_1 = _mm256_add_pd(q_acc_1_1,res_tmp_1_1);
-                   q_acc_1_2 = _mm256_add_pd(q_acc_1_2,res_tmp_1_2);
-                   q_acc_1_3 = _mm256_add_pd(q_acc_1_3,res_tmp_1_3);
-                   q_acc_1_4 = _mm256_add_pd(q_acc_1_4,res_tmp_1_4);
-                   q_acc_1_5 = _mm256_add_pd(q_acc_1_5,res_tmp_1_5);
-                   q_acc_1_6 = _mm256_add_pd(q_acc_1_6,res_tmp_1_6);
-                   q_acc_1_7 = _mm256_add_pd(q_acc_1_7,res_tmp_1_7);
-                   q_acc_1_8 = _mm256_add_pd(q_acc_1_8,res_tmp_1_8);
-                   q_acc_1_9 = _mm256_add_pd(q_acc_1_9,res_tmp_1_9);
                    q_acc_2_2 = _mm256_add_pd(q_acc_2_2,res_tmp_2_2);
-                   q_acc_2_3 = _mm256_add_pd(q_acc_2_3,res_tmp_2_3);
-                   q_acc_2_4 = _mm256_add_pd(q_acc_2_4,res_tmp_2_4);
-                   q_acc_2_5 = _mm256_add_pd(q_acc_2_5,res_tmp_2_5);
-                   q_acc_2_6 = _mm256_add_pd(q_acc_2_6,res_tmp_2_6);
-                   q_acc_2_7 = _mm256_add_pd(q_acc_2_7,res_tmp_2_7);
-                   q_acc_2_8 = _mm256_add_pd(q_acc_2_8,res_tmp_2_8);
-                   q_acc_2_9 = _mm256_add_pd(q_acc_2_9,res_tmp_2_9);
                    q_acc_3_3 = _mm256_add_pd(q_acc_3_3,res_tmp_3_3);
-                   q_acc_3_4 = _mm256_add_pd(q_acc_3_4,res_tmp_3_4);
-                   q_acc_3_5 = _mm256_add_pd(q_acc_3_5,res_tmp_3_5);
-                   q_acc_3_6 = _mm256_add_pd(q_acc_3_6,res_tmp_3_6);
-                   q_acc_3_7 = _mm256_add_pd(q_acc_3_7,res_tmp_3_7);
-                   q_acc_3_8 = _mm256_add_pd(q_acc_3_8,res_tmp_3_8);
-                   q_acc_3_9 = _mm256_add_pd(q_acc_3_9,res_tmp_3_9);
                    q_acc_4_4 = _mm256_add_pd(q_acc_4_4,res_tmp_4_4);
-                   q_acc_4_5 = _mm256_add_pd(q_acc_4_5,res_tmp_4_5);
-                   q_acc_4_6 = _mm256_add_pd(q_acc_4_6,res_tmp_4_6);
-                   q_acc_4_7 = _mm256_add_pd(q_acc_4_7,res_tmp_4_7);
-                   q_acc_4_8 = _mm256_add_pd(q_acc_4_8,res_tmp_4_8);
-                   q_acc_4_9 = _mm256_add_pd(q_acc_4_9,res_tmp_4_9);
                    q_acc_5_5 = _mm256_add_pd(q_acc_5_5,res_tmp_5_5);
-                   q_acc_5_6 = _mm256_add_pd(q_acc_5_6,res_tmp_5_6);
-                   q_acc_5_7 = _mm256_add_pd(q_acc_5_7,res_tmp_5_7);
-                   q_acc_5_8 = _mm256_add_pd(q_acc_5_8,res_tmp_5_8);
-                   q_acc_5_9 = _mm256_add_pd(q_acc_5_9,res_tmp_5_9);
                    q_acc_6_6 = _mm256_add_pd(q_acc_6_6,res_tmp_6_6);
-                   q_acc_6_7 = _mm256_add_pd(q_acc_6_7,res_tmp_6_7);
-                   q_acc_6_8 = _mm256_add_pd(q_acc_6_8,res_tmp_6_8);
-                   q_acc_6_9 = _mm256_add_pd(q_acc_6_9,res_tmp_6_9);
                    q_acc_7_7 = _mm256_add_pd(q_acc_7_7,res_tmp_7_7);
-                   q_acc_7_8 = _mm256_add_pd(q_acc_7_8,res_tmp_7_8);
-                   q_acc_7_9 = _mm256_add_pd(q_acc_7_9,res_tmp_7_9);
                    q_acc_8_8 = _mm256_add_pd(q_acc_8_8,res_tmp_8_8);
-                   q_acc_8_9 = _mm256_add_pd(q_acc_8_9,res_tmp_8_9);
                    q_acc_9_9 = _mm256_add_pd(q_acc_9_9,res_tmp_9_9);
                 }
-                __m256d q_acc_1_0 = q_acc_0_1;
-                __m256d q_acc_2_0 = q_acc_0_2;
-                __m256d q_acc_2_1 = q_acc_1_2;
-                __m256d q_acc_3_0 = q_acc_0_3;
-                __m256d q_acc_3_1 = q_acc_1_3;
-                __m256d q_acc_3_2 = q_acc_2_3;
-                __m256d q_acc_4_0 = q_acc_0_4;
-                __m256d q_acc_4_1 = q_acc_1_4;
-                __m256d q_acc_4_2 = q_acc_2_4;
-                __m256d q_acc_4_3 = q_acc_3_4;
-                __m256d q_acc_5_0 = q_acc_0_5;
-                __m256d q_acc_5_1 = q_acc_1_5;
-                __m256d q_acc_5_2 = q_acc_2_5;
-                __m256d q_acc_5_3 = q_acc_3_5;
-                __m256d q_acc_5_4 = q_acc_4_5;
-                __m256d q_acc_6_0 = q_acc_0_6;
-                __m256d q_acc_6_1 = q_acc_1_6;
-                __m256d q_acc_6_2 = q_acc_2_6;
-                __m256d q_acc_6_3 = q_acc_3_6;
-                __m256d q_acc_6_4 = q_acc_4_6;
-                __m256d q_acc_6_5 = q_acc_5_6;
-                __m256d q_acc_7_0 = q_acc_0_7;
-                __m256d q_acc_7_1 = q_acc_1_7;
-                __m256d q_acc_7_2 = q_acc_2_7;
-                __m256d q_acc_7_3 = q_acc_3_7;
-                __m256d q_acc_7_4 = q_acc_4_7;
-                __m256d q_acc_7_5 = q_acc_5_7;
-                __m256d q_acc_7_6 = q_acc_6_7;
-                __m256d q_acc_8_0 = q_acc_0_8;
-                __m256d q_acc_8_1 = q_acc_1_8;
-                __m256d q_acc_8_2 = q_acc_2_8;
-                __m256d q_acc_8_3 = q_acc_3_8;
-                __m256d q_acc_8_4 = q_acc_4_8;
-                __m256d q_acc_8_5 = q_acc_5_8;
-                __m256d q_acc_8_6 = q_acc_6_8;
-                __m256d q_acc_8_7 = q_acc_7_8;
-                __m256d q_acc_9_0 = q_acc_0_9;
-                __m256d q_acc_9_1 = q_acc_1_9;
-                __m256d q_acc_9_2 = q_acc_2_9;
-                __m256d q_acc_9_3 = q_acc_3_9;
-                __m256d q_acc_9_4 = q_acc_4_9;
-                __m256d q_acc_9_5 = q_acc_5_9;
-                __m256d q_acc_9_6 = q_acc_6_9;
-                __m256d q_acc_9_7 = q_acc_7_9;
-                __m256d q_acc_9_8 = q_acc_8_9;
                 const __m256d elMatDiag_0 = q_acc_0_0;
                 const __m256d elMatDiag_1 = q_acc_1_1;
                 const __m256d elMatDiag_2 = q_acc_2_2;
@@ -4348,69 +1774,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
              for (int64_t ctr_0 = (int64_t)((-ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
              {
                 const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-                const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+                const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+                const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
                 const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+                const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
                 const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-                const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
                 double q_acc_0_0 = 0.0;
-                double q_acc_0_1 = 0.0;
-                double q_acc_0_2 = 0.0;
-                double q_acc_0_3 = 0.0;
-                double q_acc_0_4 = 0.0;
-                double q_acc_0_5 = 0.0;
-                double q_acc_0_6 = 0.0;
-                double q_acc_0_7 = 0.0;
-                double q_acc_0_8 = 0.0;
-                double q_acc_0_9 = 0.0;
                 double q_acc_1_1 = 0.0;
-                double q_acc_1_2 = 0.0;
-                double q_acc_1_3 = 0.0;
-                double q_acc_1_4 = 0.0;
-                double q_acc_1_5 = 0.0;
-                double q_acc_1_6 = 0.0;
-                double q_acc_1_7 = 0.0;
-                double q_acc_1_8 = 0.0;
-                double q_acc_1_9 = 0.0;
                 double q_acc_2_2 = 0.0;
-                double q_acc_2_3 = 0.0;
-                double q_acc_2_4 = 0.0;
-                double q_acc_2_5 = 0.0;
-                double q_acc_2_6 = 0.0;
-                double q_acc_2_7 = 0.0;
-                double q_acc_2_8 = 0.0;
-                double q_acc_2_9 = 0.0;
                 double q_acc_3_3 = 0.0;
-                double q_acc_3_4 = 0.0;
-                double q_acc_3_5 = 0.0;
-                double q_acc_3_6 = 0.0;
-                double q_acc_3_7 = 0.0;
-                double q_acc_3_8 = 0.0;
-                double q_acc_3_9 = 0.0;
                 double q_acc_4_4 = 0.0;
-                double q_acc_4_5 = 0.0;
-                double q_acc_4_6 = 0.0;
-                double q_acc_4_7 = 0.0;
-                double q_acc_4_8 = 0.0;
-                double q_acc_4_9 = 0.0;
                 double q_acc_5_5 = 0.0;
-                double q_acc_5_6 = 0.0;
-                double q_acc_5_7 = 0.0;
-                double q_acc_5_8 = 0.0;
-                double q_acc_5_9 = 0.0;
                 double q_acc_6_6 = 0.0;
-                double q_acc_6_7 = 0.0;
-                double q_acc_6_8 = 0.0;
-                double q_acc_6_9 = 0.0;
                 double q_acc_7_7 = 0.0;
-                double q_acc_7_8 = 0.0;
-                double q_acc_7_9 = 0.0;
                 double q_acc_8_8 = 0.0;
-                double q_acc_8_9 = 0.0;
                 double q_acc_9_9 = 0.0;
                 for (int64_t q = 0; q < 4; q += 1)
                 {
@@ -4419,281 +1800,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                    const double tmp_q_2 = 4.0*_data_q_p_1[q];
                    const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                    const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                   const double tmp_q_5 = Dummy_4894*tmp_q_4;
-                   const double tmp_q_6 = Dummy_4897*tmp_q_4;
-                   const double tmp_q_7 = Dummy_4900*tmp_q_4;
-                   const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                   const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                   const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                   const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                   const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                   const double tmp_q_13 = tmp_q_12*2.0;
-                   const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                   const double tmp_q_15 = tmp_q_14*2.0;
-                   const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                   const double tmp_q_17 = tmp_q_16*2.0;
-                   const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                   const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                   const double tmp_q_20 = Dummy_4895*tmp_q_4;
-                   const double tmp_q_21 = Dummy_4898*tmp_q_4;
-                   const double tmp_q_22 = Dummy_4901*tmp_q_4;
-                   const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                   const double tmp_q_24 = Dummy_4896*tmp_q_4;
-                   const double tmp_q_25 = Dummy_4899*tmp_q_4;
-                   const double tmp_q_26 = Dummy_4902*tmp_q_4;
-                   const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                   const double tmp_q_28 = Dummy_4903*_data_q_w[q];
-                   const double tmp_q_29 = tmp_q_1 - 1.0;
-                   const double tmp_q_30 = Dummy_4894*tmp_q_29;
-                   const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                   const double tmp_q_32 = Dummy_4895*tmp_q_29;
-                   const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                   const double tmp_q_34 = Dummy_4896*tmp_q_29;
-                   const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                   const double tmp_q_36 = tmp_q_2 - 1.0;
-                   const double tmp_q_37 = Dummy_4897*tmp_q_36;
-                   const double tmp_q_38 = Dummy_4898*tmp_q_36;
-                   const double tmp_q_39 = Dummy_4899*tmp_q_36;
-                   const double tmp_q_40 = tmp_q_0 - 1.0;
-                   const double tmp_q_41 = Dummy_4900*tmp_q_40;
-                   const double tmp_q_42 = Dummy_4901*tmp_q_40;
-                   const double tmp_q_43 = Dummy_4902*tmp_q_40;
-                   const double tmp_q_44 = Dummy_4897*tmp_q_0;
-                   const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                   const double tmp_q_46 = Dummy_4900*tmp_q_2;
-                   const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                   const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                   const double tmp_q_49 = Dummy_4898*tmp_q_0;
-                   const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                   const double tmp_q_51 = Dummy_4901*tmp_q_2;
-                   const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                   const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                   const double tmp_q_54 = Dummy_4899*tmp_q_0;
-                   const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                   const double tmp_q_56 = Dummy_4902*tmp_q_2;
-                   const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                   const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                   const double tmp_q_59 = Dummy_4894*tmp_q_0;
-                   const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                   const double tmp_q_61 = Dummy_4900*tmp_q_1;
-                   const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                   const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                   const double tmp_q_64 = Dummy_4895*tmp_q_0;
-                   const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                   const double tmp_q_66 = Dummy_4901*tmp_q_1;
-                   const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                   const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                   const double tmp_q_69 = Dummy_4896*tmp_q_0;
-                   const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                   const double tmp_q_71 = Dummy_4902*tmp_q_1;
-                   const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                   const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                   const double tmp_q_74 = Dummy_4894*tmp_q_2;
-                   const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                   const double tmp_q_76 = Dummy_4897*tmp_q_1;
-                   const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                   const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                   const double tmp_q_79 = Dummy_4895*tmp_q_2;
-                   const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                   const double tmp_q_81 = Dummy_4898*tmp_q_1;
-                   const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                   const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                   const double tmp_q_84 = Dummy_4896*tmp_q_2;
-                   const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                   const double tmp_q_86 = Dummy_4899*tmp_q_1;
-                   const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                   const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                   const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                   const double tmp_q_90 = Dummy_4900*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                   const double tmp_q_91 = Dummy_4901*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                   const double tmp_q_92 = Dummy_4902*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                   const double tmp_q_93 = tmp_q_0 - 4.0;
-                   const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                   const double tmp_q_95 = Dummy_4897*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                   const double tmp_q_96 = Dummy_4898*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                   const double tmp_q_97 = Dummy_4899*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                   const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                   const double tmp_q_99 = Dummy_4894*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                   const double tmp_q_100 = Dummy_4895*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                   const double tmp_q_101 = Dummy_4896*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                   const double tmp_q_102 = tmp_q_19*16.0;
-                   const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                   const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                   const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                   const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                   const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                   const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                   const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                   const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                   const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                   const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                   const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                   const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                   const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                   const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                   const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                   const double tmp_q_118 = Dummy_4900*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                   const double tmp_q_119 = Dummy_4901*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                   const double tmp_q_120 = Dummy_4902*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                   const double tmp_q_121 = Dummy_4897*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                   const double tmp_q_122 = Dummy_4898*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                   const double tmp_q_123 = Dummy_4899*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                   const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                   const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                   const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                   const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                   const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                   const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                   const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                   const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                   const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                   const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                   const double res_tmp_1_1 = tmp_q_28*((Dummy_4894*Dummy_4894)*tmp_q_103 + (Dummy_4895*Dummy_4895)*tmp_q_103 + (Dummy_4896*Dummy_4896)*tmp_q_103);
-                   const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                   const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                   const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                   const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                   const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                   const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                   const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                   const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                   const double res_tmp_2_2 = tmp_q_28*((Dummy_4897*Dummy_4897)*tmp_q_107 + (Dummy_4898*Dummy_4898)*tmp_q_107 + (Dummy_4899*Dummy_4899)*tmp_q_107);
-                   const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                   const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                   const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                   const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                   const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                   const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                   const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                   const double res_tmp_3_3 = tmp_q_28*((Dummy_4900*Dummy_4900)*tmp_q_108 + (Dummy_4901*Dummy_4901)*tmp_q_108 + (Dummy_4902*Dummy_4902)*tmp_q_108);
-                   const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                   const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                   const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                   const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                   const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                   const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                   const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                   const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                   const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                   const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                   const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                   const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                   const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                   const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                   const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                   const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                   const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                   const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                   const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                   const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                   const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                   const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                   const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                   const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                   const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                   const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                   const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4895*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4896*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4894*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                   const double tmp_q_5 = Dummy_4877*tmp_q_4;
+                   const double tmp_q_6 = Dummy_4880*tmp_q_4;
+                   const double tmp_q_7 = Dummy_4883*tmp_q_4;
+                   const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                   const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                   const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                   const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                   const double tmp_q_12 = tmp_q_11*2.0;
+                   const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                   const double tmp_q_14 = tmp_q_13*2.0;
+                   const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                   const double tmp_q_16 = tmp_q_15*2.0;
+                   const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                   const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                   const double tmp_q_19 = Dummy_4878*tmp_q_4;
+                   const double tmp_q_20 = Dummy_4881*tmp_q_4;
+                   const double tmp_q_21 = Dummy_4884*tmp_q_4;
+                   const double tmp_q_22 = Dummy_4879*tmp_q_4;
+                   const double tmp_q_23 = Dummy_4882*tmp_q_4;
+                   const double tmp_q_24 = Dummy_4885*tmp_q_4;
+                   const double tmp_q_25 = Dummy_4886*_data_q_w[q];
+                   const double tmp_q_26 = tmp_q_18*16.0;
+                   const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                   const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                   const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                   const double tmp_q_30 = Dummy_4880*tmp_q_0;
+                   const double tmp_q_31 = Dummy_4883*tmp_q_2;
+                   const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                   const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                   const double tmp_q_34 = Dummy_4881*tmp_q_0;
+                   const double tmp_q_35 = Dummy_4884*tmp_q_2;
+                   const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                   const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                   const double tmp_q_38 = Dummy_4882*tmp_q_0;
+                   const double tmp_q_39 = Dummy_4885*tmp_q_2;
+                   const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                   const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                   const double tmp_q_42 = Dummy_4877*tmp_q_0;
+                   const double tmp_q_43 = Dummy_4883*tmp_q_1;
+                   const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                   const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                   const double tmp_q_46 = Dummy_4878*tmp_q_0;
+                   const double tmp_q_47 = Dummy_4884*tmp_q_1;
+                   const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                   const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                   const double tmp_q_50 = Dummy_4879*tmp_q_0;
+                   const double tmp_q_51 = Dummy_4885*tmp_q_1;
+                   const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                   const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                   const double tmp_q_54 = Dummy_4877*tmp_q_2;
+                   const double tmp_q_55 = Dummy_4880*tmp_q_1;
+                   const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                   const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                   const double tmp_q_58 = Dummy_4878*tmp_q_2;
+                   const double tmp_q_59 = Dummy_4881*tmp_q_1;
+                   const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                   const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                   const double tmp_q_62 = Dummy_4879*tmp_q_2;
+                   const double tmp_q_63 = Dummy_4882*tmp_q_1;
+                   const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                   const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                   const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                   const double tmp_q_67 = tmp_q_0 - 4.0;
+                   const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                   const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                   const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                   const double res_tmp_1_1 = tmp_q_25*((Dummy_4877*Dummy_4877)*tmp_q_27 + (Dummy_4878*Dummy_4878)*tmp_q_27 + (Dummy_4879*Dummy_4879)*tmp_q_27);
+                   const double res_tmp_2_2 = tmp_q_25*((Dummy_4880*Dummy_4880)*tmp_q_28 + (Dummy_4881*Dummy_4881)*tmp_q_28 + (Dummy_4882*Dummy_4882)*tmp_q_28);
+                   const double res_tmp_3_3 = tmp_q_25*((Dummy_4883*Dummy_4883)*tmp_q_29 + (Dummy_4884*Dummy_4884)*tmp_q_29 + (Dummy_4885*Dummy_4885)*tmp_q_29);
+                   const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                   const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                   const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                   const double res_tmp_7_7 = tmp_q_25*((Dummy_4883*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4883*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4884*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4884*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4885*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4885*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                   const double res_tmp_8_8 = tmp_q_25*((Dummy_4880*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4880*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4881*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4881*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4882*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4882*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                   const double res_tmp_9_9 = tmp_q_25*((Dummy_4877*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4877*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4878*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4878*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4879*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4879*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                    q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                   q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                   q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                   q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                   q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                   q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                   q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                   q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                   q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                   q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                    q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                   q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                   q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                   q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                   q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                   q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                   q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                   q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                   q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                    q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                   q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                   q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                   q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                   q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                   q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                   q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                   q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                    q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                   q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                   q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                   q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                   q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                   q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                   q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                    q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                   q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                   q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                   q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                   q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                   q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                    q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                   q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                   q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                   q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                   q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                    q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                   q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                   q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                   q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                    q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                   q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                   q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                    q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                   q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                    q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
                 }
-                double q_acc_1_0 = q_acc_0_1;
-                double q_acc_2_0 = q_acc_0_2;
-                double q_acc_2_1 = q_acc_1_2;
-                double q_acc_3_0 = q_acc_0_3;
-                double q_acc_3_1 = q_acc_1_3;
-                double q_acc_3_2 = q_acc_2_3;
-                double q_acc_4_0 = q_acc_0_4;
-                double q_acc_4_1 = q_acc_1_4;
-                double q_acc_4_2 = q_acc_2_4;
-                double q_acc_4_3 = q_acc_3_4;
-                double q_acc_5_0 = q_acc_0_5;
-                double q_acc_5_1 = q_acc_1_5;
-                double q_acc_5_2 = q_acc_2_5;
-                double q_acc_5_3 = q_acc_3_5;
-                double q_acc_5_4 = q_acc_4_5;
-                double q_acc_6_0 = q_acc_0_6;
-                double q_acc_6_1 = q_acc_1_6;
-                double q_acc_6_2 = q_acc_2_6;
-                double q_acc_6_3 = q_acc_3_6;
-                double q_acc_6_4 = q_acc_4_6;
-                double q_acc_6_5 = q_acc_5_6;
-                double q_acc_7_0 = q_acc_0_7;
-                double q_acc_7_1 = q_acc_1_7;
-                double q_acc_7_2 = q_acc_2_7;
-                double q_acc_7_3 = q_acc_3_7;
-                double q_acc_7_4 = q_acc_4_7;
-                double q_acc_7_5 = q_acc_5_7;
-                double q_acc_7_6 = q_acc_6_7;
-                double q_acc_8_0 = q_acc_0_8;
-                double q_acc_8_1 = q_acc_1_8;
-                double q_acc_8_2 = q_acc_2_8;
-                double q_acc_8_3 = q_acc_3_8;
-                double q_acc_8_4 = q_acc_4_8;
-                double q_acc_8_5 = q_acc_5_8;
-                double q_acc_8_6 = q_acc_6_8;
-                double q_acc_8_7 = q_acc_7_8;
-                double q_acc_9_0 = q_acc_0_9;
-                double q_acc_9_1 = q_acc_1_9;
-                double q_acc_9_2 = q_acc_2_9;
-                double q_acc_9_3 = q_acc_3_9;
-                double q_acc_9_4 = q_acc_4_9;
-                double q_acc_9_5 = q_acc_5_9;
-                double q_acc_9_6 = q_acc_6_9;
-                double q_acc_9_7 = q_acc_7_9;
-                double q_acc_9_8 = q_acc_8_9;
                 const double elMatDiag_0 = q_acc_0_0;
                 const double elMatDiag_1 = q_acc_1_1;
                 const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_2D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_2D.cpp
index ead9fa398828c625947f6676855dfbdf1ff19663..f338c7a9d30717d1f382ee7bc7a6da31904faab3 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_2D.cpp
@@ -57,11 +57,11 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double * RESTRICT  _data_k, double * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -104,9 +104,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
              const double src_dof_0 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
              const double src_dof_1 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -150,9 +150,9 @@ void P1ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dst, double
              const double src_dof_0 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_3D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_3D.cpp
index 15fabbeb682e729dd76e4c505f2d42c90862e358..47675f3fdb9079dba9d2c3821a5945aa523d40e5 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_apply_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double * RESTRICT  _data_k, double * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -278,10 +278,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -349,10 +349,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -420,10 +420,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_2 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -491,10 +491,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -562,10 +562,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double src_dof_3 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -633,10 +633,10 @@ void P1ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dst, double
              const double src_dof_1 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_2 = _data_src[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double src_dof_3 = _data_src[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
index f408cecc9a143d36165461c4309705c2e86ebecb..5e984454165a382543876c4e732ef0e3bb597779 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
@@ -57,11 +57,11 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_, double * RESTRICT  _data_k, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,8 +78,6 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double tmp_q_0 = -jac_affine_inv_0_0 - jac_affine_inv_1_0;
-       const double tmp_q_4 = -jac_affine_inv_0_1 - jac_affine_inv_1_1;
        const double Dummy_3697 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
        const double Dummy_3698 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
        const double Dummy_3699 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
@@ -95,45 +93,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double Dummy_3709 = -Dummy_3705*1.0 / (Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
        const double Dummy_3710 = Dummy_3703*1.0 / (Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
        const double Dummy_3711 = fabs(Dummy_3703*Dummy_3706 - Dummy_3704*Dummy_3705);
-       const double Dummy_3712 = -Dummy_3707 - Dummy_3709;
-       const double Dummy_3713 = -Dummy_3708 - Dummy_3710;
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
              double q_acc_2_2 = 0.0;
              for (int64_t q = 0; q < 3; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
-                const double tmp_q_2 = jac_affine_inv_0_0*tmp_q_1;
-                const double tmp_q_3 = jac_affine_inv_1_0*tmp_q_1;
-                const double tmp_q_5 = jac_affine_inv_0_1*tmp_q_1;
-                const double tmp_q_6 = jac_affine_inv_1_1*tmp_q_1;
-                const double tmp_q_7 = abs_det_jac_affine*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_7*(tmp_q_0*(-tmp_q_2 - tmp_q_3) + tmp_q_4*(-tmp_q_5 - tmp_q_6));
-                const double res_tmp_0_1 = tmp_q_7*(tmp_q_0*tmp_q_2 + tmp_q_4*tmp_q_5);
-                const double res_tmp_0_2 = tmp_q_7*(tmp_q_0*tmp_q_3 + tmp_q_4*tmp_q_6);
-                const double res_tmp_1_1 = tmp_q_7*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_1 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_7*(jac_affine_inv_1_0*tmp_q_2 + jac_affine_inv_1_1*tmp_q_5);
-                const double res_tmp_2_2 = tmp_q_7*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_1 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
+                const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-jac_affine_inv_0_0 - jac_affine_inv_1_0)*(-jac_affine_inv_0_0*tmp_q_0 - jac_affine_inv_1_0*tmp_q_0) + (-jac_affine_inv_0_1 - jac_affine_inv_1_1)*(-jac_affine_inv_0_1*tmp_q_0 - jac_affine_inv_1_1*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_0 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_0 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -144,39 +124,23 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
              double q_acc_2_2 = 0.0;
              for (int64_t q = 0; q < 3; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
-                const double tmp_q_2 = Dummy_3707*tmp_q_1;
-                const double tmp_q_3 = Dummy_3709*tmp_q_1;
-                const double tmp_q_5 = Dummy_3708*tmp_q_1;
-                const double tmp_q_6 = Dummy_3710*tmp_q_1;
-                const double tmp_q_7 = Dummy_3711*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_7*(Dummy_3712*(-tmp_q_2 - tmp_q_3) + Dummy_3713*(-tmp_q_5 - tmp_q_6));
-                const double res_tmp_0_1 = tmp_q_7*(Dummy_3712*tmp_q_2 + Dummy_3713*tmp_q_5);
-                const double res_tmp_0_2 = tmp_q_7*(Dummy_3712*tmp_q_3 + Dummy_3713*tmp_q_6);
-                const double res_tmp_1_1 = tmp_q_7*((Dummy_3707*Dummy_3707)*tmp_q_1 + (Dummy_3708*Dummy_3708)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_7*(Dummy_3709*tmp_q_2 + Dummy_3710*tmp_q_5);
-                const double res_tmp_2_2 = tmp_q_7*((Dummy_3709*Dummy_3709)*tmp_q_1 + (Dummy_3710*Dummy_3710)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q];
+                const double tmp_q_1 = Dummy_3711*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3707 - Dummy_3709)*(-Dummy_3707*tmp_q_0 - Dummy_3709*tmp_q_0) + (-Dummy_3708 - Dummy_3710)*(-Dummy_3708*tmp_q_0 - Dummy_3710*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3707*Dummy_3707)*tmp_q_0 + (Dummy_3708*Dummy_3708)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3709*Dummy_3709)*tmp_q_0 + (Dummy_3710*Dummy_3710)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
index 1666957d3efee1fe7b479991fbda7081ef793649..4f463d1b18b999a13656fbfec00a2cb3b5629aeb 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( double * RESTRICT  _data_invDiag_, double * RESTRICT  _data_k, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,238 +96,187 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double tmp_q_0 = -jac_affine_inv_0_0 - jac_affine_inv_1_0 - jac_affine_inv_2_0;
-       const double tmp_q_5 = -jac_affine_inv_0_1 - jac_affine_inv_1_1 - jac_affine_inv_2_1;
-       const double tmp_q_9 = -jac_affine_inv_0_2 - jac_affine_inv_1_2 - jac_affine_inv_2_2;
-       const double Dummy_3822 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3823 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3824 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3825 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3826 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3827 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3828 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3829 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3830 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3831 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3832 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3833 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3834 = -Dummy_3822 + Dummy_3825;
-       const double Dummy_3835 = -Dummy_3822 + Dummy_3828;
-       const double Dummy_3836 = -Dummy_3822 + Dummy_3831;
-       const double Dummy_3837 = -Dummy_3823 + Dummy_3826;
-       const double Dummy_3838 = -Dummy_3823 + Dummy_3829;
-       const double Dummy_3839 = -Dummy_3823 + Dummy_3832;
-       const double Dummy_3840 = -Dummy_3824 + Dummy_3827;
-       const double Dummy_3841 = -Dummy_3824 + Dummy_3830;
-       const double Dummy_3842 = -Dummy_3824 + Dummy_3833;
-       const double Dummy_3843 = (Dummy_3838*Dummy_3842 - Dummy_3839*Dummy_3841)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3844 = (-Dummy_3835*Dummy_3842 + Dummy_3836*Dummy_3841)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3845 = (Dummy_3835*Dummy_3839 - Dummy_3836*Dummy_3838)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3846 = (-Dummy_3837*Dummy_3842 + Dummy_3839*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3847 = (Dummy_3834*Dummy_3842 - Dummy_3836*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3848 = (-Dummy_3834*Dummy_3839 + Dummy_3836*Dummy_3837)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3849 = (Dummy_3837*Dummy_3841 - Dummy_3838*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3850 = (-Dummy_3834*Dummy_3841 + Dummy_3835*Dummy_3840)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3851 = (Dummy_3834*Dummy_3838 - Dummy_3835*Dummy_3837)*1.0 / (Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3852 = fabs(Dummy_3834*Dummy_3838*Dummy_3842 - Dummy_3834*Dummy_3839*Dummy_3841 - Dummy_3835*Dummy_3837*Dummy_3842 + Dummy_3835*Dummy_3839*Dummy_3840 + Dummy_3836*Dummy_3837*Dummy_3841 - Dummy_3836*Dummy_3838*Dummy_3840);
-       const double Dummy_3853 = -Dummy_3843 - Dummy_3846 - Dummy_3849;
-       const double Dummy_3854 = -Dummy_3844 - Dummy_3847 - Dummy_3850;
-       const double Dummy_3855 = -Dummy_3845 - Dummy_3848 - Dummy_3851;
-       const double Dummy_3856 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_3857 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_3858 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_3859 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3860 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3861 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3862 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3863 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3864 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3865 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3866 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3867 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3868 = -Dummy_3856 + Dummy_3859;
-       const double Dummy_3869 = -Dummy_3856 + Dummy_3862;
-       const double Dummy_3870 = -Dummy_3856 + Dummy_3865;
-       const double Dummy_3871 = -Dummy_3857 + Dummy_3860;
-       const double Dummy_3872 = -Dummy_3857 + Dummy_3863;
-       const double Dummy_3873 = -Dummy_3857 + Dummy_3866;
-       const double Dummy_3874 = -Dummy_3858 + Dummy_3861;
-       const double Dummy_3875 = -Dummy_3858 + Dummy_3864;
-       const double Dummy_3876 = -Dummy_3858 + Dummy_3867;
-       const double Dummy_3877 = (Dummy_3872*Dummy_3876 - Dummy_3873*Dummy_3875)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3878 = (-Dummy_3869*Dummy_3876 + Dummy_3870*Dummy_3875)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3879 = (Dummy_3869*Dummy_3873 - Dummy_3870*Dummy_3872)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3880 = (-Dummy_3871*Dummy_3876 + Dummy_3873*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3881 = (Dummy_3868*Dummy_3876 - Dummy_3870*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3882 = (-Dummy_3868*Dummy_3873 + Dummy_3870*Dummy_3871)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3883 = (Dummy_3871*Dummy_3875 - Dummy_3872*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3884 = (-Dummy_3868*Dummy_3875 + Dummy_3869*Dummy_3874)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3885 = (Dummy_3868*Dummy_3872 - Dummy_3869*Dummy_3871)*1.0 / (Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3886 = fabs(Dummy_3868*Dummy_3872*Dummy_3876 - Dummy_3868*Dummy_3873*Dummy_3875 - Dummy_3869*Dummy_3871*Dummy_3876 + Dummy_3869*Dummy_3873*Dummy_3874 + Dummy_3870*Dummy_3871*Dummy_3875 - Dummy_3870*Dummy_3872*Dummy_3874);
-       const double Dummy_3887 = -Dummy_3877 - Dummy_3880 - Dummy_3883;
-       const double Dummy_3888 = -Dummy_3878 - Dummy_3881 - Dummy_3884;
-       const double Dummy_3889 = -Dummy_3879 - Dummy_3882 - Dummy_3885;
-       const double Dummy_3890 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3891 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3892 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3893 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3894 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3895 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3896 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3897 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3898 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3899 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3900 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3901 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3902 = -Dummy_3890 + Dummy_3893;
-       const double Dummy_3903 = -Dummy_3890 + Dummy_3896;
-       const double Dummy_3904 = -Dummy_3890 + Dummy_3899;
-       const double Dummy_3905 = -Dummy_3891 + Dummy_3894;
-       const double Dummy_3906 = -Dummy_3891 + Dummy_3897;
-       const double Dummy_3907 = -Dummy_3891 + Dummy_3900;
-       const double Dummy_3908 = -Dummy_3892 + Dummy_3895;
-       const double Dummy_3909 = -Dummy_3892 + Dummy_3898;
-       const double Dummy_3910 = -Dummy_3892 + Dummy_3901;
-       const double Dummy_3911 = (Dummy_3906*Dummy_3910 - Dummy_3907*Dummy_3909)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3912 = (-Dummy_3903*Dummy_3910 + Dummy_3904*Dummy_3909)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3913 = (Dummy_3903*Dummy_3907 - Dummy_3904*Dummy_3906)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3914 = (-Dummy_3905*Dummy_3910 + Dummy_3907*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3915 = (Dummy_3902*Dummy_3910 - Dummy_3904*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3916 = (-Dummy_3902*Dummy_3907 + Dummy_3904*Dummy_3905)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3917 = (Dummy_3905*Dummy_3909 - Dummy_3906*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3918 = (-Dummy_3902*Dummy_3909 + Dummy_3903*Dummy_3908)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3919 = (Dummy_3902*Dummy_3906 - Dummy_3903*Dummy_3905)*1.0 / (Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3920 = fabs(Dummy_3902*Dummy_3906*Dummy_3910 - Dummy_3902*Dummy_3907*Dummy_3909 - Dummy_3903*Dummy_3905*Dummy_3910 + Dummy_3903*Dummy_3907*Dummy_3908 + Dummy_3904*Dummy_3905*Dummy_3909 - Dummy_3904*Dummy_3906*Dummy_3908);
-       const double Dummy_3921 = -Dummy_3911 - Dummy_3914 - Dummy_3917;
-       const double Dummy_3922 = -Dummy_3912 - Dummy_3915 - Dummy_3918;
-       const double Dummy_3923 = -Dummy_3913 - Dummy_3916 - Dummy_3919;
-       const double Dummy_3924 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_3925 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_3926 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_3927 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3928 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3929 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3930 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3931 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3932 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3933 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3934 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3935 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3936 = -Dummy_3924 + Dummy_3927;
-       const double Dummy_3937 = -Dummy_3924 + Dummy_3930;
-       const double Dummy_3938 = -Dummy_3924 + Dummy_3933;
-       const double Dummy_3939 = -Dummy_3925 + Dummy_3928;
-       const double Dummy_3940 = -Dummy_3925 + Dummy_3931;
-       const double Dummy_3941 = -Dummy_3925 + Dummy_3934;
-       const double Dummy_3942 = -Dummy_3926 + Dummy_3929;
-       const double Dummy_3943 = -Dummy_3926 + Dummy_3932;
-       const double Dummy_3944 = -Dummy_3926 + Dummy_3935;
-       const double Dummy_3945 = (Dummy_3940*Dummy_3944 - Dummy_3941*Dummy_3943)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3946 = (-Dummy_3937*Dummy_3944 + Dummy_3938*Dummy_3943)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3947 = (Dummy_3937*Dummy_3941 - Dummy_3938*Dummy_3940)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3948 = (-Dummy_3939*Dummy_3944 + Dummy_3941*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3949 = (Dummy_3936*Dummy_3944 - Dummy_3938*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3950 = (-Dummy_3936*Dummy_3941 + Dummy_3938*Dummy_3939)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3951 = (Dummy_3939*Dummy_3943 - Dummy_3940*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3952 = (-Dummy_3936*Dummy_3943 + Dummy_3937*Dummy_3942)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3953 = (Dummy_3936*Dummy_3940 - Dummy_3937*Dummy_3939)*1.0 / (Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3954 = fabs(Dummy_3936*Dummy_3940*Dummy_3944 - Dummy_3936*Dummy_3941*Dummy_3943 - Dummy_3937*Dummy_3939*Dummy_3944 + Dummy_3937*Dummy_3941*Dummy_3942 + Dummy_3938*Dummy_3939*Dummy_3943 - Dummy_3938*Dummy_3940*Dummy_3942);
-       const double Dummy_3955 = -Dummy_3945 - Dummy_3948 - Dummy_3951;
-       const double Dummy_3956 = -Dummy_3946 - Dummy_3949 - Dummy_3952;
-       const double Dummy_3957 = -Dummy_3947 - Dummy_3950 - Dummy_3953;
-       const double Dummy_3958 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3959 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3960 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3961 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_3962 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_3963 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_3964 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3965 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3966 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3967 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_3968 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_3969 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_3970 = -Dummy_3958 + Dummy_3961;
-       const double Dummy_3971 = -Dummy_3958 + Dummy_3964;
-       const double Dummy_3972 = -Dummy_3958 + Dummy_3967;
-       const double Dummy_3973 = -Dummy_3959 + Dummy_3962;
-       const double Dummy_3974 = -Dummy_3959 + Dummy_3965;
-       const double Dummy_3975 = -Dummy_3959 + Dummy_3968;
-       const double Dummy_3976 = -Dummy_3960 + Dummy_3963;
-       const double Dummy_3977 = -Dummy_3960 + Dummy_3966;
-       const double Dummy_3978 = -Dummy_3960 + Dummy_3969;
-       const double Dummy_3979 = (Dummy_3974*Dummy_3978 - Dummy_3975*Dummy_3977)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3980 = (-Dummy_3971*Dummy_3978 + Dummy_3972*Dummy_3977)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3981 = (Dummy_3971*Dummy_3975 - Dummy_3972*Dummy_3974)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3982 = (-Dummy_3973*Dummy_3978 + Dummy_3975*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3983 = (Dummy_3970*Dummy_3978 - Dummy_3972*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3984 = (-Dummy_3970*Dummy_3975 + Dummy_3972*Dummy_3973)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3985 = (Dummy_3973*Dummy_3977 - Dummy_3974*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3986 = (-Dummy_3970*Dummy_3977 + Dummy_3971*Dummy_3976)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3987 = (Dummy_3970*Dummy_3974 - Dummy_3971*Dummy_3973)*1.0 / (Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3988 = fabs(Dummy_3970*Dummy_3974*Dummy_3978 - Dummy_3970*Dummy_3975*Dummy_3977 - Dummy_3971*Dummy_3973*Dummy_3978 + Dummy_3971*Dummy_3975*Dummy_3976 + Dummy_3972*Dummy_3973*Dummy_3977 - Dummy_3972*Dummy_3974*Dummy_3976);
-       const double Dummy_3989 = -Dummy_3979 - Dummy_3982 - Dummy_3985;
-       const double Dummy_3990 = -Dummy_3980 - Dummy_3983 - Dummy_3986;
-       const double Dummy_3991 = -Dummy_3981 - Dummy_3984 - Dummy_3987;
+       const double Dummy_3820 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3821 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3822 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3823 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3824 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3825 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3826 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3827 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3828 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3829 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3830 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3831 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3832 = -Dummy_3820 + Dummy_3823;
+       const double Dummy_3833 = -Dummy_3820 + Dummy_3826;
+       const double Dummy_3834 = -Dummy_3820 + Dummy_3829;
+       const double Dummy_3835 = -Dummy_3821 + Dummy_3824;
+       const double Dummy_3836 = -Dummy_3821 + Dummy_3827;
+       const double Dummy_3837 = -Dummy_3821 + Dummy_3830;
+       const double Dummy_3838 = -Dummy_3822 + Dummy_3825;
+       const double Dummy_3839 = -Dummy_3822 + Dummy_3828;
+       const double Dummy_3840 = -Dummy_3822 + Dummy_3831;
+       const double Dummy_3841 = (Dummy_3836*Dummy_3840 - Dummy_3837*Dummy_3839)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3842 = (-Dummy_3833*Dummy_3840 + Dummy_3834*Dummy_3839)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3843 = (Dummy_3833*Dummy_3837 - Dummy_3834*Dummy_3836)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3844 = (-Dummy_3835*Dummy_3840 + Dummy_3837*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3845 = (Dummy_3832*Dummy_3840 - Dummy_3834*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3846 = (-Dummy_3832*Dummy_3837 + Dummy_3834*Dummy_3835)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3847 = (Dummy_3835*Dummy_3839 - Dummy_3836*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3848 = (-Dummy_3832*Dummy_3839 + Dummy_3833*Dummy_3838)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3849 = (Dummy_3832*Dummy_3836 - Dummy_3833*Dummy_3835)*1.0 / (Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3850 = fabs(Dummy_3832*Dummy_3836*Dummy_3840 - Dummy_3832*Dummy_3837*Dummy_3839 - Dummy_3833*Dummy_3835*Dummy_3840 + Dummy_3833*Dummy_3837*Dummy_3838 + Dummy_3834*Dummy_3835*Dummy_3839 - Dummy_3834*Dummy_3836*Dummy_3838);
+       const double Dummy_3851 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_3852 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_3853 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_3854 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3855 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3856 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3857 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3858 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3859 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3860 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3861 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3862 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3863 = -Dummy_3851 + Dummy_3854;
+       const double Dummy_3864 = -Dummy_3851 + Dummy_3857;
+       const double Dummy_3865 = -Dummy_3851 + Dummy_3860;
+       const double Dummy_3866 = -Dummy_3852 + Dummy_3855;
+       const double Dummy_3867 = -Dummy_3852 + Dummy_3858;
+       const double Dummy_3868 = -Dummy_3852 + Dummy_3861;
+       const double Dummy_3869 = -Dummy_3853 + Dummy_3856;
+       const double Dummy_3870 = -Dummy_3853 + Dummy_3859;
+       const double Dummy_3871 = -Dummy_3853 + Dummy_3862;
+       const double Dummy_3872 = (Dummy_3867*Dummy_3871 - Dummy_3868*Dummy_3870)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3873 = (-Dummy_3864*Dummy_3871 + Dummy_3865*Dummy_3870)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3874 = (Dummy_3864*Dummy_3868 - Dummy_3865*Dummy_3867)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3875 = (-Dummy_3866*Dummy_3871 + Dummy_3868*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3876 = (Dummy_3863*Dummy_3871 - Dummy_3865*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3877 = (-Dummy_3863*Dummy_3868 + Dummy_3865*Dummy_3866)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3878 = (Dummy_3866*Dummy_3870 - Dummy_3867*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3879 = (-Dummy_3863*Dummy_3870 + Dummy_3864*Dummy_3869)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3880 = (Dummy_3863*Dummy_3867 - Dummy_3864*Dummy_3866)*1.0 / (Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3881 = fabs(Dummy_3863*Dummy_3867*Dummy_3871 - Dummy_3863*Dummy_3868*Dummy_3870 - Dummy_3864*Dummy_3866*Dummy_3871 + Dummy_3864*Dummy_3868*Dummy_3869 + Dummy_3865*Dummy_3866*Dummy_3870 - Dummy_3865*Dummy_3867*Dummy_3869);
+       const double Dummy_3882 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3883 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3884 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3885 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3886 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3887 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3888 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3889 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3890 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3891 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3892 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3893 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3894 = -Dummy_3882 + Dummy_3885;
+       const double Dummy_3895 = -Dummy_3882 + Dummy_3888;
+       const double Dummy_3896 = -Dummy_3882 + Dummy_3891;
+       const double Dummy_3897 = -Dummy_3883 + Dummy_3886;
+       const double Dummy_3898 = -Dummy_3883 + Dummy_3889;
+       const double Dummy_3899 = -Dummy_3883 + Dummy_3892;
+       const double Dummy_3900 = -Dummy_3884 + Dummy_3887;
+       const double Dummy_3901 = -Dummy_3884 + Dummy_3890;
+       const double Dummy_3902 = -Dummy_3884 + Dummy_3893;
+       const double Dummy_3903 = (Dummy_3898*Dummy_3902 - Dummy_3899*Dummy_3901)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3904 = (-Dummy_3895*Dummy_3902 + Dummy_3896*Dummy_3901)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3905 = (Dummy_3895*Dummy_3899 - Dummy_3896*Dummy_3898)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3906 = (-Dummy_3897*Dummy_3902 + Dummy_3899*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3907 = (Dummy_3894*Dummy_3902 - Dummy_3896*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3908 = (-Dummy_3894*Dummy_3899 + Dummy_3896*Dummy_3897)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3909 = (Dummy_3897*Dummy_3901 - Dummy_3898*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3910 = (-Dummy_3894*Dummy_3901 + Dummy_3895*Dummy_3900)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3911 = (Dummy_3894*Dummy_3898 - Dummy_3895*Dummy_3897)*1.0 / (Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3912 = fabs(Dummy_3894*Dummy_3898*Dummy_3902 - Dummy_3894*Dummy_3899*Dummy_3901 - Dummy_3895*Dummy_3897*Dummy_3902 + Dummy_3895*Dummy_3899*Dummy_3900 + Dummy_3896*Dummy_3897*Dummy_3901 - Dummy_3896*Dummy_3898*Dummy_3900);
+       const double Dummy_3913 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_3914 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_3915 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_3916 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3917 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3918 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3919 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3920 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3921 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3922 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3923 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3924 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3925 = -Dummy_3913 + Dummy_3916;
+       const double Dummy_3926 = -Dummy_3913 + Dummy_3919;
+       const double Dummy_3927 = -Dummy_3913 + Dummy_3922;
+       const double Dummy_3928 = -Dummy_3914 + Dummy_3917;
+       const double Dummy_3929 = -Dummy_3914 + Dummy_3920;
+       const double Dummy_3930 = -Dummy_3914 + Dummy_3923;
+       const double Dummy_3931 = -Dummy_3915 + Dummy_3918;
+       const double Dummy_3932 = -Dummy_3915 + Dummy_3921;
+       const double Dummy_3933 = -Dummy_3915 + Dummy_3924;
+       const double Dummy_3934 = (Dummy_3929*Dummy_3933 - Dummy_3930*Dummy_3932)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3935 = (-Dummy_3926*Dummy_3933 + Dummy_3927*Dummy_3932)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3936 = (Dummy_3926*Dummy_3930 - Dummy_3927*Dummy_3929)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3937 = (-Dummy_3928*Dummy_3933 + Dummy_3930*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3938 = (Dummy_3925*Dummy_3933 - Dummy_3927*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3939 = (-Dummy_3925*Dummy_3930 + Dummy_3927*Dummy_3928)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3940 = (Dummy_3928*Dummy_3932 - Dummy_3929*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3941 = (-Dummy_3925*Dummy_3932 + Dummy_3926*Dummy_3931)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3942 = (Dummy_3925*Dummy_3929 - Dummy_3926*Dummy_3928)*1.0 / (Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3943 = fabs(Dummy_3925*Dummy_3929*Dummy_3933 - Dummy_3925*Dummy_3930*Dummy_3932 - Dummy_3926*Dummy_3928*Dummy_3933 + Dummy_3926*Dummy_3930*Dummy_3931 + Dummy_3927*Dummy_3928*Dummy_3932 - Dummy_3927*Dummy_3929*Dummy_3931);
+       const double Dummy_3944 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3945 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3946 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3947 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_3948 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_3949 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_3950 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3951 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3952 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3953 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_3954 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_3955 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_3956 = -Dummy_3944 + Dummy_3947;
+       const double Dummy_3957 = -Dummy_3944 + Dummy_3950;
+       const double Dummy_3958 = -Dummy_3944 + Dummy_3953;
+       const double Dummy_3959 = -Dummy_3945 + Dummy_3948;
+       const double Dummy_3960 = -Dummy_3945 + Dummy_3951;
+       const double Dummy_3961 = -Dummy_3945 + Dummy_3954;
+       const double Dummy_3962 = -Dummy_3946 + Dummy_3949;
+       const double Dummy_3963 = -Dummy_3946 + Dummy_3952;
+       const double Dummy_3964 = -Dummy_3946 + Dummy_3955;
+       const double Dummy_3965 = (Dummy_3960*Dummy_3964 - Dummy_3961*Dummy_3963)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3966 = (-Dummy_3957*Dummy_3964 + Dummy_3958*Dummy_3963)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3967 = (Dummy_3957*Dummy_3961 - Dummy_3958*Dummy_3960)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3968 = (-Dummy_3959*Dummy_3964 + Dummy_3961*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3969 = (Dummy_3956*Dummy_3964 - Dummy_3958*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3970 = (-Dummy_3956*Dummy_3961 + Dummy_3958*Dummy_3959)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3971 = (Dummy_3959*Dummy_3963 - Dummy_3960*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3972 = (-Dummy_3956*Dummy_3963 + Dummy_3957*Dummy_3962)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3973 = (Dummy_3956*Dummy_3960 - Dummy_3957*Dummy_3959)*1.0 / (Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
+       const double Dummy_3974 = fabs(Dummy_3956*Dummy_3960*Dummy_3964 - Dummy_3956*Dummy_3961*Dummy_3963 - Dummy_3957*Dummy_3959*Dummy_3964 + Dummy_3957*Dummy_3961*Dummy_3962 + Dummy_3958*Dummy_3959*Dummy_3963 - Dummy_3958*Dummy_3960*Dummy_3962);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = jac_affine_inv_0_0*tmp_q_1;
-                const double tmp_q_3 = jac_affine_inv_1_0*tmp_q_1;
-                const double tmp_q_4 = jac_affine_inv_2_0*tmp_q_1;
-                const double tmp_q_6 = jac_affine_inv_0_1*tmp_q_1;
-                const double tmp_q_7 = jac_affine_inv_1_1*tmp_q_1;
-                const double tmp_q_8 = jac_affine_inv_2_1*tmp_q_1;
-                const double tmp_q_10 = jac_affine_inv_0_2*tmp_q_1;
-                const double tmp_q_11 = jac_affine_inv_1_2*tmp_q_1;
-                const double tmp_q_12 = jac_affine_inv_2_2*tmp_q_1;
-                const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(tmp_q_0*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + tmp_q_5*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + tmp_q_9*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(tmp_q_0*tmp_q_2 + tmp_q_10*tmp_q_9 + tmp_q_5*tmp_q_6);
-                const double res_tmp_0_2 = tmp_q_13*(tmp_q_0*tmp_q_3 + tmp_q_11*tmp_q_9 + tmp_q_5*tmp_q_7);
-                const double res_tmp_0_3 = tmp_q_13*(tmp_q_0*tmp_q_4 + tmp_q_12*tmp_q_9 + tmp_q_5*tmp_q_8);
-                const double res_tmp_1_1 = tmp_q_13*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_1 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_1 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(jac_affine_inv_1_0*tmp_q_2 + jac_affine_inv_1_1*tmp_q_6 + jac_affine_inv_1_2*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(jac_affine_inv_2_0*tmp_q_2 + jac_affine_inv_2_1*tmp_q_6 + jac_affine_inv_2_2*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_1 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_1 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(jac_affine_inv_2_0*tmp_q_3 + jac_affine_inv_2_1*tmp_q_7 + jac_affine_inv_2_2*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_1 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_1 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = abs_det_jac_affine*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-jac_affine_inv_0_0 - jac_affine_inv_1_0 - jac_affine_inv_2_0)*(-jac_affine_inv_0_0*tmp_q_0 - jac_affine_inv_1_0*tmp_q_0 - jac_affine_inv_2_0*tmp_q_0) + (-jac_affine_inv_0_1 - jac_affine_inv_1_1 - jac_affine_inv_2_1)*(-jac_affine_inv_0_1*tmp_q_0 - jac_affine_inv_1_1*tmp_q_0 - jac_affine_inv_2_1*tmp_q_0) + (-jac_affine_inv_0_2 - jac_affine_inv_1_2 - jac_affine_inv_2_2)*(-jac_affine_inv_0_2*tmp_q_0 - jac_affine_inv_1_2*tmp_q_0 - jac_affine_inv_2_2*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_0 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_0 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_0 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_0 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_0 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_0 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -341,60 +290,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = Dummy_3843*tmp_q_1;
-                const double tmp_q_3 = Dummy_3846*tmp_q_1;
-                const double tmp_q_4 = Dummy_3849*tmp_q_1;
-                const double tmp_q_6 = Dummy_3844*tmp_q_1;
-                const double tmp_q_7 = Dummy_3847*tmp_q_1;
-                const double tmp_q_8 = Dummy_3850*tmp_q_1;
-                const double tmp_q_10 = Dummy_3845*tmp_q_1;
-                const double tmp_q_11 = Dummy_3848*tmp_q_1;
-                const double tmp_q_12 = Dummy_3851*tmp_q_1;
-                const double tmp_q_13 = Dummy_3852*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(Dummy_3853*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3854*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3855*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(Dummy_3853*tmp_q_2 + Dummy_3854*tmp_q_6 + Dummy_3855*tmp_q_10);
-                const double res_tmp_0_2 = tmp_q_13*(Dummy_3853*tmp_q_3 + Dummy_3854*tmp_q_7 + Dummy_3855*tmp_q_11);
-                const double res_tmp_0_3 = tmp_q_13*(Dummy_3853*tmp_q_4 + Dummy_3854*tmp_q_8 + Dummy_3855*tmp_q_12);
-                const double res_tmp_1_1 = tmp_q_13*((Dummy_3843*Dummy_3843)*tmp_q_1 + (Dummy_3844*Dummy_3844)*tmp_q_1 + (Dummy_3845*Dummy_3845)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(Dummy_3846*tmp_q_2 + Dummy_3847*tmp_q_6 + Dummy_3848*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(Dummy_3849*tmp_q_2 + Dummy_3850*tmp_q_6 + Dummy_3851*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((Dummy_3846*Dummy_3846)*tmp_q_1 + (Dummy_3847*Dummy_3847)*tmp_q_1 + (Dummy_3848*Dummy_3848)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(Dummy_3849*tmp_q_3 + Dummy_3850*tmp_q_7 + Dummy_3851*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((Dummy_3849*Dummy_3849)*tmp_q_1 + (Dummy_3850*Dummy_3850)*tmp_q_1 + (Dummy_3851*Dummy_3851)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = Dummy_3850*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3841 - Dummy_3844 - Dummy_3847)*(-Dummy_3841*tmp_q_0 - Dummy_3844*tmp_q_0 - Dummy_3847*tmp_q_0) + (-Dummy_3842 - Dummy_3845 - Dummy_3848)*(-Dummy_3842*tmp_q_0 - Dummy_3845*tmp_q_0 - Dummy_3848*tmp_q_0) + (-Dummy_3843 - Dummy_3846 - Dummy_3849)*(-Dummy_3843*tmp_q_0 - Dummy_3846*tmp_q_0 - Dummy_3849*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3841*Dummy_3841)*tmp_q_0 + (Dummy_3842*Dummy_3842)*tmp_q_0 + (Dummy_3843*Dummy_3843)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3844*Dummy_3844)*tmp_q_0 + (Dummy_3845*Dummy_3845)*tmp_q_0 + (Dummy_3846*Dummy_3846)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((Dummy_3847*Dummy_3847)*tmp_q_0 + (Dummy_3848*Dummy_3848)*tmp_q_0 + (Dummy_3849*Dummy_3849)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -408,60 +324,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = Dummy_3877*tmp_q_1;
-                const double tmp_q_3 = Dummy_3880*tmp_q_1;
-                const double tmp_q_4 = Dummy_3883*tmp_q_1;
-                const double tmp_q_6 = Dummy_3878*tmp_q_1;
-                const double tmp_q_7 = Dummy_3881*tmp_q_1;
-                const double tmp_q_8 = Dummy_3884*tmp_q_1;
-                const double tmp_q_10 = Dummy_3879*tmp_q_1;
-                const double tmp_q_11 = Dummy_3882*tmp_q_1;
-                const double tmp_q_12 = Dummy_3885*tmp_q_1;
-                const double tmp_q_13 = Dummy_3886*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(Dummy_3887*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3888*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3889*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(Dummy_3887*tmp_q_2 + Dummy_3888*tmp_q_6 + Dummy_3889*tmp_q_10);
-                const double res_tmp_0_2 = tmp_q_13*(Dummy_3887*tmp_q_3 + Dummy_3888*tmp_q_7 + Dummy_3889*tmp_q_11);
-                const double res_tmp_0_3 = tmp_q_13*(Dummy_3887*tmp_q_4 + Dummy_3888*tmp_q_8 + Dummy_3889*tmp_q_12);
-                const double res_tmp_1_1 = tmp_q_13*((Dummy_3877*Dummy_3877)*tmp_q_1 + (Dummy_3878*Dummy_3878)*tmp_q_1 + (Dummy_3879*Dummy_3879)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(Dummy_3880*tmp_q_2 + Dummy_3881*tmp_q_6 + Dummy_3882*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(Dummy_3883*tmp_q_2 + Dummy_3884*tmp_q_6 + Dummy_3885*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((Dummy_3880*Dummy_3880)*tmp_q_1 + (Dummy_3881*Dummy_3881)*tmp_q_1 + (Dummy_3882*Dummy_3882)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(Dummy_3883*tmp_q_3 + Dummy_3884*tmp_q_7 + Dummy_3885*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((Dummy_3883*Dummy_3883)*tmp_q_1 + (Dummy_3884*Dummy_3884)*tmp_q_1 + (Dummy_3885*Dummy_3885)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = Dummy_3881*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3872 - Dummy_3875 - Dummy_3878)*(-Dummy_3872*tmp_q_0 - Dummy_3875*tmp_q_0 - Dummy_3878*tmp_q_0) + (-Dummy_3873 - Dummy_3876 - Dummy_3879)*(-Dummy_3873*tmp_q_0 - Dummy_3876*tmp_q_0 - Dummy_3879*tmp_q_0) + (-Dummy_3874 - Dummy_3877 - Dummy_3880)*(-Dummy_3874*tmp_q_0 - Dummy_3877*tmp_q_0 - Dummy_3880*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3872*Dummy_3872)*tmp_q_0 + (Dummy_3873*Dummy_3873)*tmp_q_0 + (Dummy_3874*Dummy_3874)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3875*Dummy_3875)*tmp_q_0 + (Dummy_3876*Dummy_3876)*tmp_q_0 + (Dummy_3877*Dummy_3877)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((Dummy_3878*Dummy_3878)*tmp_q_0 + (Dummy_3879*Dummy_3879)*tmp_q_0 + (Dummy_3880*Dummy_3880)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -475,60 +358,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = Dummy_3911*tmp_q_1;
-                const double tmp_q_3 = Dummy_3914*tmp_q_1;
-                const double tmp_q_4 = Dummy_3917*tmp_q_1;
-                const double tmp_q_6 = Dummy_3912*tmp_q_1;
-                const double tmp_q_7 = Dummy_3915*tmp_q_1;
-                const double tmp_q_8 = Dummy_3918*tmp_q_1;
-                const double tmp_q_10 = Dummy_3913*tmp_q_1;
-                const double tmp_q_11 = Dummy_3916*tmp_q_1;
-                const double tmp_q_12 = Dummy_3919*tmp_q_1;
-                const double tmp_q_13 = Dummy_3920*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(Dummy_3921*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3922*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3923*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(Dummy_3921*tmp_q_2 + Dummy_3922*tmp_q_6 + Dummy_3923*tmp_q_10);
-                const double res_tmp_0_2 = tmp_q_13*(Dummy_3921*tmp_q_3 + Dummy_3922*tmp_q_7 + Dummy_3923*tmp_q_11);
-                const double res_tmp_0_3 = tmp_q_13*(Dummy_3921*tmp_q_4 + Dummy_3922*tmp_q_8 + Dummy_3923*tmp_q_12);
-                const double res_tmp_1_1 = tmp_q_13*((Dummy_3911*Dummy_3911)*tmp_q_1 + (Dummy_3912*Dummy_3912)*tmp_q_1 + (Dummy_3913*Dummy_3913)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(Dummy_3914*tmp_q_2 + Dummy_3915*tmp_q_6 + Dummy_3916*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(Dummy_3917*tmp_q_2 + Dummy_3918*tmp_q_6 + Dummy_3919*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((Dummy_3914*Dummy_3914)*tmp_q_1 + (Dummy_3915*Dummy_3915)*tmp_q_1 + (Dummy_3916*Dummy_3916)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(Dummy_3917*tmp_q_3 + Dummy_3918*tmp_q_7 + Dummy_3919*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((Dummy_3917*Dummy_3917)*tmp_q_1 + (Dummy_3918*Dummy_3918)*tmp_q_1 + (Dummy_3919*Dummy_3919)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = Dummy_3912*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3903 - Dummy_3906 - Dummy_3909)*(-Dummy_3903*tmp_q_0 - Dummy_3906*tmp_q_0 - Dummy_3909*tmp_q_0) + (-Dummy_3904 - Dummy_3907 - Dummy_3910)*(-Dummy_3904*tmp_q_0 - Dummy_3907*tmp_q_0 - Dummy_3910*tmp_q_0) + (-Dummy_3905 - Dummy_3908 - Dummy_3911)*(-Dummy_3905*tmp_q_0 - Dummy_3908*tmp_q_0 - Dummy_3911*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3903*Dummy_3903)*tmp_q_0 + (Dummy_3904*Dummy_3904)*tmp_q_0 + (Dummy_3905*Dummy_3905)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3906*Dummy_3906)*tmp_q_0 + (Dummy_3907*Dummy_3907)*tmp_q_0 + (Dummy_3908*Dummy_3908)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((Dummy_3909*Dummy_3909)*tmp_q_0 + (Dummy_3910*Dummy_3910)*tmp_q_0 + (Dummy_3911*Dummy_3911)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -542,60 +392,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = Dummy_3945*tmp_q_1;
-                const double tmp_q_3 = Dummy_3948*tmp_q_1;
-                const double tmp_q_4 = Dummy_3951*tmp_q_1;
-                const double tmp_q_6 = Dummy_3946*tmp_q_1;
-                const double tmp_q_7 = Dummy_3949*tmp_q_1;
-                const double tmp_q_8 = Dummy_3952*tmp_q_1;
-                const double tmp_q_10 = Dummy_3947*tmp_q_1;
-                const double tmp_q_11 = Dummy_3950*tmp_q_1;
-                const double tmp_q_12 = Dummy_3953*tmp_q_1;
-                const double tmp_q_13 = Dummy_3954*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(Dummy_3955*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3956*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3957*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(Dummy_3955*tmp_q_2 + Dummy_3956*tmp_q_6 + Dummy_3957*tmp_q_10);
-                const double res_tmp_0_2 = tmp_q_13*(Dummy_3955*tmp_q_3 + Dummy_3956*tmp_q_7 + Dummy_3957*tmp_q_11);
-                const double res_tmp_0_3 = tmp_q_13*(Dummy_3955*tmp_q_4 + Dummy_3956*tmp_q_8 + Dummy_3957*tmp_q_12);
-                const double res_tmp_1_1 = tmp_q_13*((Dummy_3945*Dummy_3945)*tmp_q_1 + (Dummy_3946*Dummy_3946)*tmp_q_1 + (Dummy_3947*Dummy_3947)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(Dummy_3948*tmp_q_2 + Dummy_3949*tmp_q_6 + Dummy_3950*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(Dummy_3951*tmp_q_2 + Dummy_3952*tmp_q_6 + Dummy_3953*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((Dummy_3948*Dummy_3948)*tmp_q_1 + (Dummy_3949*Dummy_3949)*tmp_q_1 + (Dummy_3950*Dummy_3950)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(Dummy_3951*tmp_q_3 + Dummy_3952*tmp_q_7 + Dummy_3953*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((Dummy_3951*Dummy_3951)*tmp_q_1 + (Dummy_3952*Dummy_3952)*tmp_q_1 + (Dummy_3953*Dummy_3953)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = Dummy_3943*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3934 - Dummy_3937 - Dummy_3940)*(-Dummy_3934*tmp_q_0 - Dummy_3937*tmp_q_0 - Dummy_3940*tmp_q_0) + (-Dummy_3935 - Dummy_3938 - Dummy_3941)*(-Dummy_3935*tmp_q_0 - Dummy_3938*tmp_q_0 - Dummy_3941*tmp_q_0) + (-Dummy_3936 - Dummy_3939 - Dummy_3942)*(-Dummy_3936*tmp_q_0 - Dummy_3939*tmp_q_0 - Dummy_3942*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3934*Dummy_3934)*tmp_q_0 + (Dummy_3935*Dummy_3935)*tmp_q_0 + (Dummy_3936*Dummy_3936)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3937*Dummy_3937)*tmp_q_0 + (Dummy_3938*Dummy_3938)*tmp_q_0 + (Dummy_3939*Dummy_3939)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((Dummy_3940*Dummy_3940)*tmp_q_0 + (Dummy_3941*Dummy_3941)*tmp_q_0 + (Dummy_3942*Dummy_3942)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -609,60 +426,27 @@ void P1ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
              double q_acc_3_3 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
-                const double tmp_q_1 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
-                const double tmp_q_2 = Dummy_3979*tmp_q_1;
-                const double tmp_q_3 = Dummy_3982*tmp_q_1;
-                const double tmp_q_4 = Dummy_3985*tmp_q_1;
-                const double tmp_q_6 = Dummy_3980*tmp_q_1;
-                const double tmp_q_7 = Dummy_3983*tmp_q_1;
-                const double tmp_q_8 = Dummy_3986*tmp_q_1;
-                const double tmp_q_10 = Dummy_3981*tmp_q_1;
-                const double tmp_q_11 = Dummy_3984*tmp_q_1;
-                const double tmp_q_12 = Dummy_3987*tmp_q_1;
-                const double tmp_q_13 = Dummy_3988*_data_q_w[q];
-                const double res_tmp_0_0 = tmp_q_13*(Dummy_3989*(-tmp_q_2 - tmp_q_3 - tmp_q_4) + Dummy_3990*(-tmp_q_6 - tmp_q_7 - tmp_q_8) + Dummy_3991*(-tmp_q_10 - tmp_q_11 - tmp_q_12));
-                const double res_tmp_0_1 = tmp_q_13*(Dummy_3989*tmp_q_2 + Dummy_3990*tmp_q_6 + Dummy_3991*tmp_q_10);
-                const double res_tmp_0_2 = tmp_q_13*(Dummy_3989*tmp_q_3 + Dummy_3990*tmp_q_7 + Dummy_3991*tmp_q_11);
-                const double res_tmp_0_3 = tmp_q_13*(Dummy_3989*tmp_q_4 + Dummy_3990*tmp_q_8 + Dummy_3991*tmp_q_12);
-                const double res_tmp_1_1 = tmp_q_13*((Dummy_3979*Dummy_3979)*tmp_q_1 + (Dummy_3980*Dummy_3980)*tmp_q_1 + (Dummy_3981*Dummy_3981)*tmp_q_1);
-                const double res_tmp_1_2 = tmp_q_13*(Dummy_3982*tmp_q_2 + Dummy_3983*tmp_q_6 + Dummy_3984*tmp_q_10);
-                const double res_tmp_1_3 = tmp_q_13*(Dummy_3985*tmp_q_2 + Dummy_3986*tmp_q_6 + Dummy_3987*tmp_q_10);
-                const double res_tmp_2_2 = tmp_q_13*((Dummy_3982*Dummy_3982)*tmp_q_1 + (Dummy_3983*Dummy_3983)*tmp_q_1 + (Dummy_3984*Dummy_3984)*tmp_q_1);
-                const double res_tmp_2_3 = tmp_q_13*(Dummy_3985*tmp_q_3 + Dummy_3986*tmp_q_7 + Dummy_3987*tmp_q_11);
-                const double res_tmp_3_3 = tmp_q_13*((Dummy_3985*Dummy_3985)*tmp_q_1 + (Dummy_3986*Dummy_3986)*tmp_q_1 + (Dummy_3987*Dummy_3987)*tmp_q_1);
+                const double tmp_q_0 = k_dof_0*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]) + k_dof_1*_data_q_p_0[q] + k_dof_2*_data_q_p_1[q] + k_dof_3*_data_q_p_2[q];
+                const double tmp_q_1 = Dummy_3974*_data_q_w[q];
+                const double res_tmp_0_0 = tmp_q_1*((-Dummy_3965 - Dummy_3968 - Dummy_3971)*(-Dummy_3965*tmp_q_0 - Dummy_3968*tmp_q_0 - Dummy_3971*tmp_q_0) + (-Dummy_3966 - Dummy_3969 - Dummy_3972)*(-Dummy_3966*tmp_q_0 - Dummy_3969*tmp_q_0 - Dummy_3972*tmp_q_0) + (-Dummy_3967 - Dummy_3970 - Dummy_3973)*(-Dummy_3967*tmp_q_0 - Dummy_3970*tmp_q_0 - Dummy_3973*tmp_q_0));
+                const double res_tmp_1_1 = tmp_q_1*((Dummy_3965*Dummy_3965)*tmp_q_0 + (Dummy_3966*Dummy_3966)*tmp_q_0 + (Dummy_3967*Dummy_3967)*tmp_q_0);
+                const double res_tmp_2_2 = tmp_q_1*((Dummy_3968*Dummy_3968)*tmp_q_0 + (Dummy_3969*Dummy_3969)*tmp_q_0 + (Dummy_3970*Dummy_3970)*tmp_q_0);
+                const double res_tmp_3_3 = tmp_q_1*((Dummy_3971*Dummy_3971)*tmp_q_0 + (Dummy_3972*Dummy_3972)*tmp_q_0 + (Dummy_3973*Dummy_3973)*tmp_q_0);
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_2D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_2D.cpp
index c74e1b93c279c465234ff40bf548e7f3aecaaccc..eb40bb3b84d335abceace7fbbb73c213eff7d0fa 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, double * RESTRICT  _data_k, int64_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void P1ElementwiseDivKGrad::toMatrix_macro_2D( idx_t * RESTRICT  _data_dst, double * RESTRICT  _data_k, idx_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -101,9 +101,9 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -146,7 +146,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 3 );
              std::vector< uint_t > _data_colIdx( 3 );
-             std::vector< double > _data_mat( 9 );
+             std::vector< real_t > _data_mat( 9 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
@@ -159,15 +159,15 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_1_0;
-             _data_mat[4] = elMat_1_1;
-             _data_mat[5] = elMat_1_2;
-             _data_mat[6] = elMat_2_0;
-             _data_mat[7] = elMat_2_1;
-             _data_mat[8] = elMat_2_2;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_1_0));
+             _data_mat[4] = ((real_t)(elMat_1_1));
+             _data_mat[5] = ((real_t)(elMat_1_2));
+             _data_mat[6] = ((real_t)(elMat_2_0));
+             _data_mat[7] = ((real_t)(elMat_2_1));
+             _data_mat[8] = ((real_t)(elMat_2_2));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -175,9 +175,9 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -220,7 +220,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 3 );
              std::vector< uint_t > _data_colIdx( 3 );
-             std::vector< double > _data_mat( 9 );
+             std::vector< real_t > _data_mat( 9 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
@@ -233,15 +233,15 @@ void P1ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_1_0;
-             _data_mat[4] = elMat_1_1;
-             _data_mat[5] = elMat_1_2;
-             _data_mat[6] = elMat_2_0;
-             _data_mat[7] = elMat_2_1;
-             _data_mat[8] = elMat_2_2;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_1_0));
+             _data_mat[4] = ((real_t)(elMat_1_1));
+             _data_mat[5] = ((real_t)(elMat_1_2));
+             _data_mat[6] = ((real_t)(elMat_2_0));
+             _data_mat[7] = ((real_t)(elMat_2_1));
+             _data_mat[8] = ((real_t)(elMat_2_2));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_3D.cpp b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_3D.cpp
index 5a985250b2ddc799e80f07787eef9c11152c0cd2..7313897fbce90d0379146f3db3339af75a7e5753 100644
--- a/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P1ElementwiseDivKGrad_toMatrix_macro_3D.cpp
@@ -54,16 +54,16 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, double * RESTRICT  _data_k, int64_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void P1ElementwiseDivKGrad::toMatrix_macro_3D( idx_t * RESTRICT  _data_dst, double * RESTRICT  _data_k, idx_t * RESTRICT  _data_src, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -274,10 +274,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -347,7 +347,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -362,22 +362,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -386,10 +386,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -459,7 +459,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -474,22 +474,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -498,10 +498,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -571,7 +571,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -586,22 +586,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -610,10 +610,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -683,7 +683,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]));
@@ -698,22 +698,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -722,10 +722,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_3 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -795,7 +795,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -810,22 +810,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -834,10 +834,10 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_3 = _data_k[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
+             const double k_dof_2 = _data_k[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -907,7 +907,7 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
              std::vector< uint_t > _data_rowIdx( 4 );
              std::vector< uint_t > _data_colIdx( 4 );
-             std::vector< double > _data_mat( 16 );
+             std::vector< real_t > _data_mat( 16 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -922,22 +922,22 @@ void P1ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dst, do
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_1_0;
-             _data_mat[5] = elMat_1_1;
-             _data_mat[6] = elMat_1_2;
-             _data_mat[7] = elMat_1_3;
-             _data_mat[8] = elMat_2_0;
-             _data_mat[9] = elMat_2_1;
-             _data_mat[10] = elMat_2_2;
-             _data_mat[11] = elMat_2_3;
-             _data_mat[12] = elMat_3_0;
-             _data_mat[13] = elMat_3_1;
-             _data_mat[14] = elMat_3_2;
-             _data_mat[15] = elMat_3_3;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_1_0));
+             _data_mat[5] = ((real_t)(elMat_1_1));
+             _data_mat[6] = ((real_t)(elMat_1_2));
+             _data_mat[7] = ((real_t)(elMat_1_3));
+             _data_mat[8] = ((real_t)(elMat_2_0));
+             _data_mat[9] = ((real_t)(elMat_2_1));
+             _data_mat[10] = ((real_t)(elMat_2_2));
+             _data_mat[11] = ((real_t)(elMat_2_3));
+             _data_mat[12] = ((real_t)(elMat_3_0));
+             _data_mat[13] = ((real_t)(elMat_3_1));
+             _data_mat[14] = ((real_t)(elMat_3_2));
+             _data_mat[15] = ((real_t)(elMat_3_3));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_2D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_2D.cpp
index 8fedba70e999ba608bd8a2609f23973e0eb0729d..c297e3940e1a764bc73d9bcb1ea097a2a1136920 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float, int64_t micro_edges_per_macro_face ) const
+void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,21 +78,21 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double Dummy_4018 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4019 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4020 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4021 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4022 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4023 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4024 = -Dummy_4018 + Dummy_4020;
-       const double Dummy_4025 = -Dummy_4018 + Dummy_4022;
-       const double Dummy_4026 = -Dummy_4019 + Dummy_4021;
-       const double Dummy_4027 = -Dummy_4019 + Dummy_4023;
-       const double Dummy_4028 = Dummy_4027*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4029 = -Dummy_4025*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4030 = -Dummy_4026*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4031 = Dummy_4024*1.0 / (Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
-       const double Dummy_4032 = fabs(Dummy_4024*Dummy_4027 - Dummy_4025*Dummy_4026);
+       const double Dummy_4001 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4002 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4003 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4004 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4005 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4006 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4007 = -Dummy_4001 + Dummy_4003;
+       const double Dummy_4008 = -Dummy_4001 + Dummy_4005;
+       const double Dummy_4009 = -Dummy_4002 + Dummy_4004;
+       const double Dummy_4010 = -Dummy_4002 + Dummy_4006;
+       const double Dummy_4011 = Dummy_4010*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4012 = -Dummy_4008*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4013 = -Dummy_4009*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4014 = Dummy_4007*1.0 / (Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
+       const double Dummy_4015 = fabs(Dummy_4007*Dummy_4010 - Dummy_4008*Dummy_4009);
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
@@ -100,15 +100,15 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
              const double src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double src_dof_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double src_dof_3 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double src_dof_3 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -247,8 +247,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
              _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
              _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
           }
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
@@ -258,14 +258,14 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_1 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double src_dof_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              const double src_dof_3 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             const double src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -292,8 +292,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_0 = 4.0*_data_q_p_0[q];
                 const double tmp_q_1 = 4.0*_data_q_p_1[q];
                 const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
-                const double tmp_q_3 = Dummy_4028*tmp_q_2;
-                const double tmp_q_4 = Dummy_4030*tmp_q_2;
+                const double tmp_q_3 = Dummy_4011*tmp_q_2;
+                const double tmp_q_4 = Dummy_4013*tmp_q_2;
                 const double tmp_q_5 = tmp_q_3 + tmp_q_4;
                 const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
                 const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
@@ -301,54 +301,54 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
                 const double tmp_q_10 = tmp_q_9*2.0;
                 const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                const double tmp_q_12 = Dummy_4029*tmp_q_2;
-                const double tmp_q_13 = Dummy_4031*tmp_q_2;
+                const double tmp_q_12 = Dummy_4012*tmp_q_2;
+                const double tmp_q_13 = Dummy_4014*tmp_q_2;
                 const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                const double tmp_q_15 = Dummy_4032*_data_q_w[q];
+                const double tmp_q_15 = Dummy_4015*_data_q_w[q];
                 const double tmp_q_16 = tmp_q_0 - 1.0;
-                const double tmp_q_17 = Dummy_4028*tmp_q_16;
+                const double tmp_q_17 = Dummy_4011*tmp_q_16;
                 const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                const double tmp_q_19 = Dummy_4029*tmp_q_16;
+                const double tmp_q_19 = Dummy_4012*tmp_q_16;
                 const double tmp_q_20 = tmp_q_11*tmp_q_14;
                 const double tmp_q_21 = tmp_q_1 - 1.0;
-                const double tmp_q_22 = Dummy_4030*tmp_q_21;
-                const double tmp_q_23 = Dummy_4031*tmp_q_21;
-                const double tmp_q_24 = Dummy_4028*tmp_q_1;
+                const double tmp_q_22 = Dummy_4013*tmp_q_21;
+                const double tmp_q_23 = Dummy_4014*tmp_q_21;
+                const double tmp_q_24 = Dummy_4011*tmp_q_1;
                 const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                const double tmp_q_26 = Dummy_4030*tmp_q_0;
+                const double tmp_q_26 = Dummy_4013*tmp_q_0;
                 const double tmp_q_27 = tmp_q_11*tmp_q_26;
                 const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                const double tmp_q_29 = Dummy_4029*tmp_q_1;
+                const double tmp_q_29 = Dummy_4012*tmp_q_1;
                 const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                const double tmp_q_31 = Dummy_4031*tmp_q_0;
+                const double tmp_q_31 = Dummy_4014*tmp_q_0;
                 const double tmp_q_32 = tmp_q_11*tmp_q_31;
                 const double tmp_q_33 = tmp_q_30 + tmp_q_32;
                 const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                const double tmp_q_35 = Dummy_4030*tmp_q_11*tmp_q_34 - tmp_q_25;
-                const double tmp_q_36 = Dummy_4031*tmp_q_11*tmp_q_34 - tmp_q_30;
+                const double tmp_q_35 = Dummy_4013*tmp_q_11*tmp_q_34 - tmp_q_25;
+                const double tmp_q_36 = Dummy_4014*tmp_q_11*tmp_q_34 - tmp_q_30;
                 const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                const double tmp_q_38 = Dummy_4028*tmp_q_37;
+                const double tmp_q_38 = Dummy_4011*tmp_q_37;
                 const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                const double tmp_q_40 = Dummy_4029*tmp_q_37;
+                const double tmp_q_40 = Dummy_4012*tmp_q_37;
                 const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
                 const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
                 const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
                 const double tmp_q_44 = tmp_q_24 + tmp_q_26;
                 const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                const double tmp_q_46 = Dummy_4030*tmp_q_34 - tmp_q_24;
-                const double tmp_q_47 = Dummy_4031*tmp_q_34 - tmp_q_29;
+                const double tmp_q_46 = Dummy_4013*tmp_q_34 - tmp_q_24;
+                const double tmp_q_47 = Dummy_4014*tmp_q_34 - tmp_q_29;
                 const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
                 const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
                 const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
                 const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
                 const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
                 const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                const double res_tmp_1_1 = tmp_q_15*((Dummy_4028*Dummy_4028)*tmp_q_42 + (Dummy_4029*Dummy_4029)*tmp_q_42);
+                const double res_tmp_1_1 = tmp_q_15*((Dummy_4011*Dummy_4011)*tmp_q_42 + (Dummy_4012*Dummy_4012)*tmp_q_42);
                 const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
                 const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
                 const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
                 const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                const double res_tmp_2_2 = tmp_q_15*((Dummy_4030*Dummy_4030)*tmp_q_43 + (Dummy_4031*Dummy_4031)*tmp_q_43);
+                const double res_tmp_2_2 = tmp_q_15*((Dummy_4013*Dummy_4013)*tmp_q_43 + (Dummy_4014*Dummy_4014)*tmp_q_43);
                 const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
                 const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
                 const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
@@ -405,8 +405,8 @@ void P2ElementwiseDivKGrad::apply_macro_2D( double * RESTRICT  _data_dstEdge, do
              _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
           }
        }
     }
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_3D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_3D.cpp
index 7016dcde63b057b59cc4976c16a68ee348e28509..c54a00afd31a83d94a440bb4115da6ac78a06af0 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_apply_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, double * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double * RESTRICT  _data_srcEdge, double * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,161 +96,161 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double Dummy_4141 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4142 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4143 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4144 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4145 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4146 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4147 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4148 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4149 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4150 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4151 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4152 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4153 = -Dummy_4141 + Dummy_4144;
-       const double Dummy_4154 = -Dummy_4141 + Dummy_4147;
-       const double Dummy_4155 = -Dummy_4141 + Dummy_4150;
-       const double Dummy_4156 = -Dummy_4142 + Dummy_4145;
-       const double Dummy_4157 = -Dummy_4142 + Dummy_4148;
-       const double Dummy_4158 = -Dummy_4142 + Dummy_4151;
-       const double Dummy_4159 = -Dummy_4143 + Dummy_4146;
-       const double Dummy_4160 = -Dummy_4143 + Dummy_4149;
-       const double Dummy_4161 = -Dummy_4143 + Dummy_4152;
-       const double Dummy_4162 = (Dummy_4157*Dummy_4161 - Dummy_4158*Dummy_4160)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4163 = (-Dummy_4154*Dummy_4161 + Dummy_4155*Dummy_4160)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4164 = (Dummy_4154*Dummy_4158 - Dummy_4155*Dummy_4157)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4165 = (-Dummy_4156*Dummy_4161 + Dummy_4158*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4166 = (Dummy_4153*Dummy_4161 - Dummy_4155*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4167 = (-Dummy_4153*Dummy_4158 + Dummy_4155*Dummy_4156)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4168 = (Dummy_4156*Dummy_4160 - Dummy_4157*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4169 = (-Dummy_4153*Dummy_4160 + Dummy_4154*Dummy_4159)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4170 = (Dummy_4153*Dummy_4157 - Dummy_4154*Dummy_4156)*1.0 / (Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4171 = fabs(Dummy_4153*Dummy_4157*Dummy_4161 - Dummy_4153*Dummy_4158*Dummy_4160 - Dummy_4154*Dummy_4156*Dummy_4161 + Dummy_4154*Dummy_4158*Dummy_4159 + Dummy_4155*Dummy_4156*Dummy_4160 - Dummy_4155*Dummy_4157*Dummy_4159);
-       const double Dummy_4172 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4173 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4174 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4175 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4176 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4177 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4178 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4179 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4180 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4181 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4182 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4183 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4184 = -Dummy_4172 + Dummy_4175;
-       const double Dummy_4185 = -Dummy_4172 + Dummy_4178;
-       const double Dummy_4186 = -Dummy_4172 + Dummy_4181;
-       const double Dummy_4187 = -Dummy_4173 + Dummy_4176;
-       const double Dummy_4188 = -Dummy_4173 + Dummy_4179;
-       const double Dummy_4189 = -Dummy_4173 + Dummy_4182;
-       const double Dummy_4190 = -Dummy_4174 + Dummy_4177;
-       const double Dummy_4191 = -Dummy_4174 + Dummy_4180;
-       const double Dummy_4192 = -Dummy_4174 + Dummy_4183;
-       const double Dummy_4193 = (Dummy_4188*Dummy_4192 - Dummy_4189*Dummy_4191)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4194 = (-Dummy_4185*Dummy_4192 + Dummy_4186*Dummy_4191)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4195 = (Dummy_4185*Dummy_4189 - Dummy_4186*Dummy_4188)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4196 = (-Dummy_4187*Dummy_4192 + Dummy_4189*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4197 = (Dummy_4184*Dummy_4192 - Dummy_4186*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4198 = (-Dummy_4184*Dummy_4189 + Dummy_4186*Dummy_4187)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4199 = (Dummy_4187*Dummy_4191 - Dummy_4188*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4200 = (-Dummy_4184*Dummy_4191 + Dummy_4185*Dummy_4190)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4201 = (Dummy_4184*Dummy_4188 - Dummy_4185*Dummy_4187)*1.0 / (Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4202 = fabs(Dummy_4184*Dummy_4188*Dummy_4192 - Dummy_4184*Dummy_4189*Dummy_4191 - Dummy_4185*Dummy_4187*Dummy_4192 + Dummy_4185*Dummy_4189*Dummy_4190 + Dummy_4186*Dummy_4187*Dummy_4191 - Dummy_4186*Dummy_4188*Dummy_4190);
-       const double Dummy_4203 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4204 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4205 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4206 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4207 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4208 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4209 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4210 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4211 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4212 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4213 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4214 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4215 = -Dummy_4203 + Dummy_4206;
-       const double Dummy_4216 = -Dummy_4203 + Dummy_4209;
-       const double Dummy_4217 = -Dummy_4203 + Dummy_4212;
-       const double Dummy_4218 = -Dummy_4204 + Dummy_4207;
-       const double Dummy_4219 = -Dummy_4204 + Dummy_4210;
-       const double Dummy_4220 = -Dummy_4204 + Dummy_4213;
-       const double Dummy_4221 = -Dummy_4205 + Dummy_4208;
-       const double Dummy_4222 = -Dummy_4205 + Dummy_4211;
-       const double Dummy_4223 = -Dummy_4205 + Dummy_4214;
-       const double Dummy_4224 = (Dummy_4219*Dummy_4223 - Dummy_4220*Dummy_4222)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4225 = (-Dummy_4216*Dummy_4223 + Dummy_4217*Dummy_4222)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4226 = (Dummy_4216*Dummy_4220 - Dummy_4217*Dummy_4219)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4227 = (-Dummy_4218*Dummy_4223 + Dummy_4220*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4228 = (Dummy_4215*Dummy_4223 - Dummy_4217*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4229 = (-Dummy_4215*Dummy_4220 + Dummy_4217*Dummy_4218)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4230 = (Dummy_4218*Dummy_4222 - Dummy_4219*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4231 = (-Dummy_4215*Dummy_4222 + Dummy_4216*Dummy_4221)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4232 = (Dummy_4215*Dummy_4219 - Dummy_4216*Dummy_4218)*1.0 / (Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4233 = fabs(Dummy_4215*Dummy_4219*Dummy_4223 - Dummy_4215*Dummy_4220*Dummy_4222 - Dummy_4216*Dummy_4218*Dummy_4223 + Dummy_4216*Dummy_4220*Dummy_4221 + Dummy_4217*Dummy_4218*Dummy_4222 - Dummy_4217*Dummy_4219*Dummy_4221);
-       const double Dummy_4234 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4235 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4236 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4237 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4238 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4239 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4240 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4241 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4242 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4243 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4244 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4245 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4246 = -Dummy_4234 + Dummy_4237;
-       const double Dummy_4247 = -Dummy_4234 + Dummy_4240;
-       const double Dummy_4248 = -Dummy_4234 + Dummy_4243;
-       const double Dummy_4249 = -Dummy_4235 + Dummy_4238;
-       const double Dummy_4250 = -Dummy_4235 + Dummy_4241;
-       const double Dummy_4251 = -Dummy_4235 + Dummy_4244;
-       const double Dummy_4252 = -Dummy_4236 + Dummy_4239;
-       const double Dummy_4253 = -Dummy_4236 + Dummy_4242;
-       const double Dummy_4254 = -Dummy_4236 + Dummy_4245;
-       const double Dummy_4255 = (Dummy_4250*Dummy_4254 - Dummy_4251*Dummy_4253)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4256 = (-Dummy_4247*Dummy_4254 + Dummy_4248*Dummy_4253)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4257 = (Dummy_4247*Dummy_4251 - Dummy_4248*Dummy_4250)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4258 = (-Dummy_4249*Dummy_4254 + Dummy_4251*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4259 = (Dummy_4246*Dummy_4254 - Dummy_4248*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4260 = (-Dummy_4246*Dummy_4251 + Dummy_4248*Dummy_4249)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4261 = (Dummy_4249*Dummy_4253 - Dummy_4250*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4262 = (-Dummy_4246*Dummy_4253 + Dummy_4247*Dummy_4252)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4263 = (Dummy_4246*Dummy_4250 - Dummy_4247*Dummy_4249)*1.0 / (Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4264 = fabs(Dummy_4246*Dummy_4250*Dummy_4254 - Dummy_4246*Dummy_4251*Dummy_4253 - Dummy_4247*Dummy_4249*Dummy_4254 + Dummy_4247*Dummy_4251*Dummy_4252 + Dummy_4248*Dummy_4249*Dummy_4253 - Dummy_4248*Dummy_4250*Dummy_4252);
-       const double Dummy_4265 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4266 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4267 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4268 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4269 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4270 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4271 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4272 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4273 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4274 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4275 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4276 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4277 = -Dummy_4265 + Dummy_4268;
-       const double Dummy_4278 = -Dummy_4265 + Dummy_4271;
-       const double Dummy_4279 = -Dummy_4265 + Dummy_4274;
-       const double Dummy_4280 = -Dummy_4266 + Dummy_4269;
-       const double Dummy_4281 = -Dummy_4266 + Dummy_4272;
-       const double Dummy_4282 = -Dummy_4266 + Dummy_4275;
-       const double Dummy_4283 = -Dummy_4267 + Dummy_4270;
-       const double Dummy_4284 = -Dummy_4267 + Dummy_4273;
-       const double Dummy_4285 = -Dummy_4267 + Dummy_4276;
-       const double Dummy_4286 = (Dummy_4281*Dummy_4285 - Dummy_4282*Dummy_4284)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4287 = (-Dummy_4278*Dummy_4285 + Dummy_4279*Dummy_4284)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4288 = (Dummy_4278*Dummy_4282 - Dummy_4279*Dummy_4281)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4289 = (-Dummy_4280*Dummy_4285 + Dummy_4282*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4290 = (Dummy_4277*Dummy_4285 - Dummy_4279*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4291 = (-Dummy_4277*Dummy_4282 + Dummy_4279*Dummy_4280)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4292 = (Dummy_4280*Dummy_4284 - Dummy_4281*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4293 = (-Dummy_4277*Dummy_4284 + Dummy_4278*Dummy_4283)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4294 = (Dummy_4277*Dummy_4281 - Dummy_4278*Dummy_4280)*1.0 / (Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
-       const double Dummy_4295 = fabs(Dummy_4277*Dummy_4281*Dummy_4285 - Dummy_4277*Dummy_4282*Dummy_4284 - Dummy_4278*Dummy_4280*Dummy_4285 + Dummy_4278*Dummy_4282*Dummy_4283 + Dummy_4279*Dummy_4280*Dummy_4284 - Dummy_4279*Dummy_4281*Dummy_4283);
+       const double Dummy_4124 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4125 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4126 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4127 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4128 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4129 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4130 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4131 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4132 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4133 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4134 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4135 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4136 = -Dummy_4124 + Dummy_4127;
+       const double Dummy_4137 = -Dummy_4124 + Dummy_4130;
+       const double Dummy_4138 = -Dummy_4124 + Dummy_4133;
+       const double Dummy_4139 = -Dummy_4125 + Dummy_4128;
+       const double Dummy_4140 = -Dummy_4125 + Dummy_4131;
+       const double Dummy_4141 = -Dummy_4125 + Dummy_4134;
+       const double Dummy_4142 = -Dummy_4126 + Dummy_4129;
+       const double Dummy_4143 = -Dummy_4126 + Dummy_4132;
+       const double Dummy_4144 = -Dummy_4126 + Dummy_4135;
+       const double Dummy_4145 = (Dummy_4140*Dummy_4144 - Dummy_4141*Dummy_4143)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4146 = (-Dummy_4137*Dummy_4144 + Dummy_4138*Dummy_4143)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4147 = (Dummy_4137*Dummy_4141 - Dummy_4138*Dummy_4140)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4148 = (-Dummy_4139*Dummy_4144 + Dummy_4141*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4149 = (Dummy_4136*Dummy_4144 - Dummy_4138*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4150 = (-Dummy_4136*Dummy_4141 + Dummy_4138*Dummy_4139)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4151 = (Dummy_4139*Dummy_4143 - Dummy_4140*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4152 = (-Dummy_4136*Dummy_4143 + Dummy_4137*Dummy_4142)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4153 = (Dummy_4136*Dummy_4140 - Dummy_4137*Dummy_4139)*1.0 / (Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4154 = fabs(Dummy_4136*Dummy_4140*Dummy_4144 - Dummy_4136*Dummy_4141*Dummy_4143 - Dummy_4137*Dummy_4139*Dummy_4144 + Dummy_4137*Dummy_4141*Dummy_4142 + Dummy_4138*Dummy_4139*Dummy_4143 - Dummy_4138*Dummy_4140*Dummy_4142);
+       const double Dummy_4155 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4156 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4157 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4158 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4159 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4160 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4161 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4162 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4163 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4164 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4165 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4166 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4167 = -Dummy_4155 + Dummy_4158;
+       const double Dummy_4168 = -Dummy_4155 + Dummy_4161;
+       const double Dummy_4169 = -Dummy_4155 + Dummy_4164;
+       const double Dummy_4170 = -Dummy_4156 + Dummy_4159;
+       const double Dummy_4171 = -Dummy_4156 + Dummy_4162;
+       const double Dummy_4172 = -Dummy_4156 + Dummy_4165;
+       const double Dummy_4173 = -Dummy_4157 + Dummy_4160;
+       const double Dummy_4174 = -Dummy_4157 + Dummy_4163;
+       const double Dummy_4175 = -Dummy_4157 + Dummy_4166;
+       const double Dummy_4176 = (Dummy_4171*Dummy_4175 - Dummy_4172*Dummy_4174)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4177 = (-Dummy_4168*Dummy_4175 + Dummy_4169*Dummy_4174)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4178 = (Dummy_4168*Dummy_4172 - Dummy_4169*Dummy_4171)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4179 = (-Dummy_4170*Dummy_4175 + Dummy_4172*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4180 = (Dummy_4167*Dummy_4175 - Dummy_4169*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4181 = (-Dummy_4167*Dummy_4172 + Dummy_4169*Dummy_4170)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4182 = (Dummy_4170*Dummy_4174 - Dummy_4171*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4183 = (-Dummy_4167*Dummy_4174 + Dummy_4168*Dummy_4173)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4184 = (Dummy_4167*Dummy_4171 - Dummy_4168*Dummy_4170)*1.0 / (Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4185 = fabs(Dummy_4167*Dummy_4171*Dummy_4175 - Dummy_4167*Dummy_4172*Dummy_4174 - Dummy_4168*Dummy_4170*Dummy_4175 + Dummy_4168*Dummy_4172*Dummy_4173 + Dummy_4169*Dummy_4170*Dummy_4174 - Dummy_4169*Dummy_4171*Dummy_4173);
+       const double Dummy_4186 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4187 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4188 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4189 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4190 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4191 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4192 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4193 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4194 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4195 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4196 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4197 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4198 = -Dummy_4186 + Dummy_4189;
+       const double Dummy_4199 = -Dummy_4186 + Dummy_4192;
+       const double Dummy_4200 = -Dummy_4186 + Dummy_4195;
+       const double Dummy_4201 = -Dummy_4187 + Dummy_4190;
+       const double Dummy_4202 = -Dummy_4187 + Dummy_4193;
+       const double Dummy_4203 = -Dummy_4187 + Dummy_4196;
+       const double Dummy_4204 = -Dummy_4188 + Dummy_4191;
+       const double Dummy_4205 = -Dummy_4188 + Dummy_4194;
+       const double Dummy_4206 = -Dummy_4188 + Dummy_4197;
+       const double Dummy_4207 = (Dummy_4202*Dummy_4206 - Dummy_4203*Dummy_4205)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4208 = (-Dummy_4199*Dummy_4206 + Dummy_4200*Dummy_4205)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4209 = (Dummy_4199*Dummy_4203 - Dummy_4200*Dummy_4202)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4210 = (-Dummy_4201*Dummy_4206 + Dummy_4203*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4211 = (Dummy_4198*Dummy_4206 - Dummy_4200*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4212 = (-Dummy_4198*Dummy_4203 + Dummy_4200*Dummy_4201)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4213 = (Dummy_4201*Dummy_4205 - Dummy_4202*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4214 = (-Dummy_4198*Dummy_4205 + Dummy_4199*Dummy_4204)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4215 = (Dummy_4198*Dummy_4202 - Dummy_4199*Dummy_4201)*1.0 / (Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4216 = fabs(Dummy_4198*Dummy_4202*Dummy_4206 - Dummy_4198*Dummy_4203*Dummy_4205 - Dummy_4199*Dummy_4201*Dummy_4206 + Dummy_4199*Dummy_4203*Dummy_4204 + Dummy_4200*Dummy_4201*Dummy_4205 - Dummy_4200*Dummy_4202*Dummy_4204);
+       const double Dummy_4217 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4218 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4219 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4220 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4221 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4222 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4223 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4224 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4225 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4226 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4227 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4228 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4229 = -Dummy_4217 + Dummy_4220;
+       const double Dummy_4230 = -Dummy_4217 + Dummy_4223;
+       const double Dummy_4231 = -Dummy_4217 + Dummy_4226;
+       const double Dummy_4232 = -Dummy_4218 + Dummy_4221;
+       const double Dummy_4233 = -Dummy_4218 + Dummy_4224;
+       const double Dummy_4234 = -Dummy_4218 + Dummy_4227;
+       const double Dummy_4235 = -Dummy_4219 + Dummy_4222;
+       const double Dummy_4236 = -Dummy_4219 + Dummy_4225;
+       const double Dummy_4237 = -Dummy_4219 + Dummy_4228;
+       const double Dummy_4238 = (Dummy_4233*Dummy_4237 - Dummy_4234*Dummy_4236)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4239 = (-Dummy_4230*Dummy_4237 + Dummy_4231*Dummy_4236)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4240 = (Dummy_4230*Dummy_4234 - Dummy_4231*Dummy_4233)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4241 = (-Dummy_4232*Dummy_4237 + Dummy_4234*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4242 = (Dummy_4229*Dummy_4237 - Dummy_4231*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4243 = (-Dummy_4229*Dummy_4234 + Dummy_4231*Dummy_4232)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4244 = (Dummy_4232*Dummy_4236 - Dummy_4233*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4245 = (-Dummy_4229*Dummy_4236 + Dummy_4230*Dummy_4235)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4246 = (Dummy_4229*Dummy_4233 - Dummy_4230*Dummy_4232)*1.0 / (Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4247 = fabs(Dummy_4229*Dummy_4233*Dummy_4237 - Dummy_4229*Dummy_4234*Dummy_4236 - Dummy_4230*Dummy_4232*Dummy_4237 + Dummy_4230*Dummy_4234*Dummy_4235 + Dummy_4231*Dummy_4232*Dummy_4236 - Dummy_4231*Dummy_4233*Dummy_4235);
+       const double Dummy_4248 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4249 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4250 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4251 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4252 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4253 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4254 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4255 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4256 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4257 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4258 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4259 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4260 = -Dummy_4248 + Dummy_4251;
+       const double Dummy_4261 = -Dummy_4248 + Dummy_4254;
+       const double Dummy_4262 = -Dummy_4248 + Dummy_4257;
+       const double Dummy_4263 = -Dummy_4249 + Dummy_4252;
+       const double Dummy_4264 = -Dummy_4249 + Dummy_4255;
+       const double Dummy_4265 = -Dummy_4249 + Dummy_4258;
+       const double Dummy_4266 = -Dummy_4250 + Dummy_4253;
+       const double Dummy_4267 = -Dummy_4250 + Dummy_4256;
+       const double Dummy_4268 = -Dummy_4250 + Dummy_4259;
+       const double Dummy_4269 = (Dummy_4264*Dummy_4268 - Dummy_4265*Dummy_4267)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4270 = (-Dummy_4261*Dummy_4268 + Dummy_4262*Dummy_4267)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4271 = (Dummy_4261*Dummy_4265 - Dummy_4262*Dummy_4264)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4272 = (-Dummy_4263*Dummy_4268 + Dummy_4265*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4273 = (Dummy_4260*Dummy_4268 - Dummy_4262*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4274 = (-Dummy_4260*Dummy_4265 + Dummy_4262*Dummy_4263)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4275 = (Dummy_4263*Dummy_4267 - Dummy_4264*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4276 = (-Dummy_4260*Dummy_4267 + Dummy_4261*Dummy_4266)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4277 = (Dummy_4260*Dummy_4264 - Dummy_4261*Dummy_4263)*1.0 / (Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
+       const double Dummy_4278 = fabs(Dummy_4260*Dummy_4264*Dummy_4268 - Dummy_4260*Dummy_4265*Dummy_4267 - Dummy_4261*Dummy_4263*Dummy_4268 + Dummy_4261*Dummy_4265*Dummy_4266 + Dummy_4262*Dummy_4263*Dummy_4267 - Dummy_4262*Dummy_4264*Dummy_4266);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
@@ -267,15 +267,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -649,15 +649,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
              const double k_dof_4 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -720,9 +720,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4162*tmp_q_4;
-                const double tmp_q_6 = Dummy_4165*tmp_q_4;
-                const double tmp_q_7 = Dummy_4168*tmp_q_4;
+                const double tmp_q_5 = Dummy_4145*tmp_q_4;
+                const double tmp_q_6 = Dummy_4148*tmp_q_4;
+                const double tmp_q_7 = Dummy_4151*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -735,88 +735,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4163*tmp_q_4;
-                const double tmp_q_21 = Dummy_4166*tmp_q_4;
-                const double tmp_q_22 = Dummy_4169*tmp_q_4;
+                const double tmp_q_20 = Dummy_4146*tmp_q_4;
+                const double tmp_q_21 = Dummy_4149*tmp_q_4;
+                const double tmp_q_22 = Dummy_4152*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4164*tmp_q_4;
-                const double tmp_q_25 = Dummy_4167*tmp_q_4;
-                const double tmp_q_26 = Dummy_4170*tmp_q_4;
+                const double tmp_q_24 = Dummy_4147*tmp_q_4;
+                const double tmp_q_25 = Dummy_4150*tmp_q_4;
+                const double tmp_q_26 = Dummy_4153*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4171*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4154*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4162*tmp_q_29;
+                const double tmp_q_30 = Dummy_4145*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4163*tmp_q_29;
+                const double tmp_q_32 = Dummy_4146*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4164*tmp_q_29;
+                const double tmp_q_34 = Dummy_4147*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4165*tmp_q_36;
-                const double tmp_q_38 = Dummy_4166*tmp_q_36;
-                const double tmp_q_39 = Dummy_4167*tmp_q_36;
+                const double tmp_q_37 = Dummy_4148*tmp_q_36;
+                const double tmp_q_38 = Dummy_4149*tmp_q_36;
+                const double tmp_q_39 = Dummy_4150*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4168*tmp_q_40;
-                const double tmp_q_42 = Dummy_4169*tmp_q_40;
-                const double tmp_q_43 = Dummy_4170*tmp_q_40;
-                const double tmp_q_44 = Dummy_4165*tmp_q_0;
+                const double tmp_q_41 = Dummy_4151*tmp_q_40;
+                const double tmp_q_42 = Dummy_4152*tmp_q_40;
+                const double tmp_q_43 = Dummy_4153*tmp_q_40;
+                const double tmp_q_44 = Dummy_4148*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4168*tmp_q_2;
+                const double tmp_q_46 = Dummy_4151*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4166*tmp_q_0;
+                const double tmp_q_49 = Dummy_4149*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4169*tmp_q_2;
+                const double tmp_q_51 = Dummy_4152*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4167*tmp_q_0;
+                const double tmp_q_54 = Dummy_4150*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4170*tmp_q_2;
+                const double tmp_q_56 = Dummy_4153*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4162*tmp_q_0;
+                const double tmp_q_59 = Dummy_4145*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4168*tmp_q_1;
+                const double tmp_q_61 = Dummy_4151*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4163*tmp_q_0;
+                const double tmp_q_64 = Dummy_4146*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4169*tmp_q_1;
+                const double tmp_q_66 = Dummy_4152*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4164*tmp_q_0;
+                const double tmp_q_69 = Dummy_4147*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4170*tmp_q_1;
+                const double tmp_q_71 = Dummy_4153*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4162*tmp_q_2;
+                const double tmp_q_74 = Dummy_4145*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4165*tmp_q_1;
+                const double tmp_q_76 = Dummy_4148*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4163*tmp_q_2;
+                const double tmp_q_79 = Dummy_4146*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4166*tmp_q_1;
+                const double tmp_q_81 = Dummy_4149*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4164*tmp_q_2;
+                const double tmp_q_84 = Dummy_4147*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4167*tmp_q_1;
+                const double tmp_q_86 = Dummy_4150*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4168*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4169*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4170*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4151*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4152*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4153*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4165*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4166*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4167*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4148*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4149*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4150*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4162*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4163*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4164*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4145*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4146*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4147*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -833,12 +833,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4168*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4169*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4170*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4165*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4166*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4167*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4151*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4152*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4153*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4148*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4149*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4150*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -849,7 +849,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4162*Dummy_4162)*tmp_q_103 + (Dummy_4163*Dummy_4163)*tmp_q_103 + (Dummy_4164*Dummy_4164)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4145*Dummy_4145)*tmp_q_103 + (Dummy_4146*Dummy_4146)*tmp_q_103 + (Dummy_4147*Dummy_4147)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -858,7 +858,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4165*Dummy_4165)*tmp_q_107 + (Dummy_4166*Dummy_4166)*tmp_q_107 + (Dummy_4167*Dummy_4167)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4148*Dummy_4148)*tmp_q_107 + (Dummy_4149*Dummy_4149)*tmp_q_107 + (Dummy_4150*Dummy_4150)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -866,7 +866,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4168*Dummy_4168)*tmp_q_108 + (Dummy_4169*Dummy_4169)*tmp_q_108 + (Dummy_4170*Dummy_4170)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4151*Dummy_4151)*tmp_q_108 + (Dummy_4152*Dummy_4152)*tmp_q_108 + (Dummy_4153*Dummy_4153)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -893,7 +893,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4163*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4164*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4162*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4146*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4147*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4145*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1031,15 +1031,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
              const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -1102,9 +1102,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4193*tmp_q_4;
-                const double tmp_q_6 = Dummy_4196*tmp_q_4;
-                const double tmp_q_7 = Dummy_4199*tmp_q_4;
+                const double tmp_q_5 = Dummy_4176*tmp_q_4;
+                const double tmp_q_6 = Dummy_4179*tmp_q_4;
+                const double tmp_q_7 = Dummy_4182*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -1117,88 +1117,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4194*tmp_q_4;
-                const double tmp_q_21 = Dummy_4197*tmp_q_4;
-                const double tmp_q_22 = Dummy_4200*tmp_q_4;
+                const double tmp_q_20 = Dummy_4177*tmp_q_4;
+                const double tmp_q_21 = Dummy_4180*tmp_q_4;
+                const double tmp_q_22 = Dummy_4183*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4195*tmp_q_4;
-                const double tmp_q_25 = Dummy_4198*tmp_q_4;
-                const double tmp_q_26 = Dummy_4201*tmp_q_4;
+                const double tmp_q_24 = Dummy_4178*tmp_q_4;
+                const double tmp_q_25 = Dummy_4181*tmp_q_4;
+                const double tmp_q_26 = Dummy_4184*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4202*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4185*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4193*tmp_q_29;
+                const double tmp_q_30 = Dummy_4176*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4194*tmp_q_29;
+                const double tmp_q_32 = Dummy_4177*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4195*tmp_q_29;
+                const double tmp_q_34 = Dummy_4178*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4196*tmp_q_36;
-                const double tmp_q_38 = Dummy_4197*tmp_q_36;
-                const double tmp_q_39 = Dummy_4198*tmp_q_36;
+                const double tmp_q_37 = Dummy_4179*tmp_q_36;
+                const double tmp_q_38 = Dummy_4180*tmp_q_36;
+                const double tmp_q_39 = Dummy_4181*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4199*tmp_q_40;
-                const double tmp_q_42 = Dummy_4200*tmp_q_40;
-                const double tmp_q_43 = Dummy_4201*tmp_q_40;
-                const double tmp_q_44 = Dummy_4196*tmp_q_0;
+                const double tmp_q_41 = Dummy_4182*tmp_q_40;
+                const double tmp_q_42 = Dummy_4183*tmp_q_40;
+                const double tmp_q_43 = Dummy_4184*tmp_q_40;
+                const double tmp_q_44 = Dummy_4179*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4199*tmp_q_2;
+                const double tmp_q_46 = Dummy_4182*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4197*tmp_q_0;
+                const double tmp_q_49 = Dummy_4180*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4200*tmp_q_2;
+                const double tmp_q_51 = Dummy_4183*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4198*tmp_q_0;
+                const double tmp_q_54 = Dummy_4181*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4201*tmp_q_2;
+                const double tmp_q_56 = Dummy_4184*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4193*tmp_q_0;
+                const double tmp_q_59 = Dummy_4176*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4199*tmp_q_1;
+                const double tmp_q_61 = Dummy_4182*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4194*tmp_q_0;
+                const double tmp_q_64 = Dummy_4177*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4200*tmp_q_1;
+                const double tmp_q_66 = Dummy_4183*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4195*tmp_q_0;
+                const double tmp_q_69 = Dummy_4178*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4201*tmp_q_1;
+                const double tmp_q_71 = Dummy_4184*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4193*tmp_q_2;
+                const double tmp_q_74 = Dummy_4176*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4196*tmp_q_1;
+                const double tmp_q_76 = Dummy_4179*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4194*tmp_q_2;
+                const double tmp_q_79 = Dummy_4177*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4197*tmp_q_1;
+                const double tmp_q_81 = Dummy_4180*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4195*tmp_q_2;
+                const double tmp_q_84 = Dummy_4178*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4198*tmp_q_1;
+                const double tmp_q_86 = Dummy_4181*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4199*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4200*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4201*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4182*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4183*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4184*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4196*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4197*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4198*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4179*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4180*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4181*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4193*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4194*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4195*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4176*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4177*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4178*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1215,12 +1215,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4199*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4200*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4201*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4196*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4197*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4198*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4182*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4183*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4184*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4179*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4180*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4181*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1231,7 +1231,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4193*Dummy_4193)*tmp_q_103 + (Dummy_4194*Dummy_4194)*tmp_q_103 + (Dummy_4195*Dummy_4195)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4176*Dummy_4176)*tmp_q_103 + (Dummy_4177*Dummy_4177)*tmp_q_103 + (Dummy_4178*Dummy_4178)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -1240,7 +1240,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4196*Dummy_4196)*tmp_q_107 + (Dummy_4197*Dummy_4197)*tmp_q_107 + (Dummy_4198*Dummy_4198)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4179*Dummy_4179)*tmp_q_107 + (Dummy_4180*Dummy_4180)*tmp_q_107 + (Dummy_4181*Dummy_4181)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -1248,7 +1248,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4199*Dummy_4199)*tmp_q_108 + (Dummy_4200*Dummy_4200)*tmp_q_108 + (Dummy_4201*Dummy_4201)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4182*Dummy_4182)*tmp_q_108 + (Dummy_4183*Dummy_4183)*tmp_q_108 + (Dummy_4184*Dummy_4184)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -1275,7 +1275,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4194*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4195*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4193*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4177*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4178*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4176*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1413,15 +1413,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -1484,9 +1484,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4224*tmp_q_4;
-                const double tmp_q_6 = Dummy_4227*tmp_q_4;
-                const double tmp_q_7 = Dummy_4230*tmp_q_4;
+                const double tmp_q_5 = Dummy_4207*tmp_q_4;
+                const double tmp_q_6 = Dummy_4210*tmp_q_4;
+                const double tmp_q_7 = Dummy_4213*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -1499,88 +1499,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4225*tmp_q_4;
-                const double tmp_q_21 = Dummy_4228*tmp_q_4;
-                const double tmp_q_22 = Dummy_4231*tmp_q_4;
+                const double tmp_q_20 = Dummy_4208*tmp_q_4;
+                const double tmp_q_21 = Dummy_4211*tmp_q_4;
+                const double tmp_q_22 = Dummy_4214*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4226*tmp_q_4;
-                const double tmp_q_25 = Dummy_4229*tmp_q_4;
-                const double tmp_q_26 = Dummy_4232*tmp_q_4;
+                const double tmp_q_24 = Dummy_4209*tmp_q_4;
+                const double tmp_q_25 = Dummy_4212*tmp_q_4;
+                const double tmp_q_26 = Dummy_4215*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4233*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4216*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4224*tmp_q_29;
+                const double tmp_q_30 = Dummy_4207*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4225*tmp_q_29;
+                const double tmp_q_32 = Dummy_4208*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4226*tmp_q_29;
+                const double tmp_q_34 = Dummy_4209*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4227*tmp_q_36;
-                const double tmp_q_38 = Dummy_4228*tmp_q_36;
-                const double tmp_q_39 = Dummy_4229*tmp_q_36;
+                const double tmp_q_37 = Dummy_4210*tmp_q_36;
+                const double tmp_q_38 = Dummy_4211*tmp_q_36;
+                const double tmp_q_39 = Dummy_4212*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4230*tmp_q_40;
-                const double tmp_q_42 = Dummy_4231*tmp_q_40;
-                const double tmp_q_43 = Dummy_4232*tmp_q_40;
-                const double tmp_q_44 = Dummy_4227*tmp_q_0;
+                const double tmp_q_41 = Dummy_4213*tmp_q_40;
+                const double tmp_q_42 = Dummy_4214*tmp_q_40;
+                const double tmp_q_43 = Dummy_4215*tmp_q_40;
+                const double tmp_q_44 = Dummy_4210*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4230*tmp_q_2;
+                const double tmp_q_46 = Dummy_4213*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4228*tmp_q_0;
+                const double tmp_q_49 = Dummy_4211*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4231*tmp_q_2;
+                const double tmp_q_51 = Dummy_4214*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4229*tmp_q_0;
+                const double tmp_q_54 = Dummy_4212*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4232*tmp_q_2;
+                const double tmp_q_56 = Dummy_4215*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4224*tmp_q_0;
+                const double tmp_q_59 = Dummy_4207*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4230*tmp_q_1;
+                const double tmp_q_61 = Dummy_4213*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4225*tmp_q_0;
+                const double tmp_q_64 = Dummy_4208*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4231*tmp_q_1;
+                const double tmp_q_66 = Dummy_4214*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4226*tmp_q_0;
+                const double tmp_q_69 = Dummy_4209*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4232*tmp_q_1;
+                const double tmp_q_71 = Dummy_4215*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4224*tmp_q_2;
+                const double tmp_q_74 = Dummy_4207*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4227*tmp_q_1;
+                const double tmp_q_76 = Dummy_4210*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4225*tmp_q_2;
+                const double tmp_q_79 = Dummy_4208*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4228*tmp_q_1;
+                const double tmp_q_81 = Dummy_4211*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4226*tmp_q_2;
+                const double tmp_q_84 = Dummy_4209*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4229*tmp_q_1;
+                const double tmp_q_86 = Dummy_4212*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4230*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4231*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4232*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4213*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4214*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4215*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4227*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4228*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4229*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4210*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4211*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4212*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4224*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4225*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4226*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4207*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4208*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4209*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1597,12 +1597,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4230*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4231*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4232*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4227*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4228*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4229*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4213*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4214*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4215*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4210*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4211*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4212*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1613,7 +1613,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4224*Dummy_4224)*tmp_q_103 + (Dummy_4225*Dummy_4225)*tmp_q_103 + (Dummy_4226*Dummy_4226)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4207*Dummy_4207)*tmp_q_103 + (Dummy_4208*Dummy_4208)*tmp_q_103 + (Dummy_4209*Dummy_4209)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -1622,7 +1622,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4227*Dummy_4227)*tmp_q_107 + (Dummy_4228*Dummy_4228)*tmp_q_107 + (Dummy_4229*Dummy_4229)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4210*Dummy_4210)*tmp_q_107 + (Dummy_4211*Dummy_4211)*tmp_q_107 + (Dummy_4212*Dummy_4212)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -1630,7 +1630,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4230*Dummy_4230)*tmp_q_108 + (Dummy_4231*Dummy_4231)*tmp_q_108 + (Dummy_4232*Dummy_4232)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4213*Dummy_4213)*tmp_q_108 + (Dummy_4214*Dummy_4214)*tmp_q_108 + (Dummy_4215*Dummy_4215)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -1657,7 +1657,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4225*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4226*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4224*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4208*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4209*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4207*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1795,15 +1795,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double src_dof_9 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -1866,9 +1866,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4255*tmp_q_4;
-                const double tmp_q_6 = Dummy_4258*tmp_q_4;
-                const double tmp_q_7 = Dummy_4261*tmp_q_4;
+                const double tmp_q_5 = Dummy_4238*tmp_q_4;
+                const double tmp_q_6 = Dummy_4241*tmp_q_4;
+                const double tmp_q_7 = Dummy_4244*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -1881,88 +1881,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4256*tmp_q_4;
-                const double tmp_q_21 = Dummy_4259*tmp_q_4;
-                const double tmp_q_22 = Dummy_4262*tmp_q_4;
+                const double tmp_q_20 = Dummy_4239*tmp_q_4;
+                const double tmp_q_21 = Dummy_4242*tmp_q_4;
+                const double tmp_q_22 = Dummy_4245*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4257*tmp_q_4;
-                const double tmp_q_25 = Dummy_4260*tmp_q_4;
-                const double tmp_q_26 = Dummy_4263*tmp_q_4;
+                const double tmp_q_24 = Dummy_4240*tmp_q_4;
+                const double tmp_q_25 = Dummy_4243*tmp_q_4;
+                const double tmp_q_26 = Dummy_4246*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4264*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4247*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4255*tmp_q_29;
+                const double tmp_q_30 = Dummy_4238*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4256*tmp_q_29;
+                const double tmp_q_32 = Dummy_4239*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4257*tmp_q_29;
+                const double tmp_q_34 = Dummy_4240*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4258*tmp_q_36;
-                const double tmp_q_38 = Dummy_4259*tmp_q_36;
-                const double tmp_q_39 = Dummy_4260*tmp_q_36;
+                const double tmp_q_37 = Dummy_4241*tmp_q_36;
+                const double tmp_q_38 = Dummy_4242*tmp_q_36;
+                const double tmp_q_39 = Dummy_4243*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4261*tmp_q_40;
-                const double tmp_q_42 = Dummy_4262*tmp_q_40;
-                const double tmp_q_43 = Dummy_4263*tmp_q_40;
-                const double tmp_q_44 = Dummy_4258*tmp_q_0;
+                const double tmp_q_41 = Dummy_4244*tmp_q_40;
+                const double tmp_q_42 = Dummy_4245*tmp_q_40;
+                const double tmp_q_43 = Dummy_4246*tmp_q_40;
+                const double tmp_q_44 = Dummy_4241*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4261*tmp_q_2;
+                const double tmp_q_46 = Dummy_4244*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4259*tmp_q_0;
+                const double tmp_q_49 = Dummy_4242*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4262*tmp_q_2;
+                const double tmp_q_51 = Dummy_4245*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4260*tmp_q_0;
+                const double tmp_q_54 = Dummy_4243*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4263*tmp_q_2;
+                const double tmp_q_56 = Dummy_4246*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4255*tmp_q_0;
+                const double tmp_q_59 = Dummy_4238*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4261*tmp_q_1;
+                const double tmp_q_61 = Dummy_4244*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4256*tmp_q_0;
+                const double tmp_q_64 = Dummy_4239*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4262*tmp_q_1;
+                const double tmp_q_66 = Dummy_4245*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4257*tmp_q_0;
+                const double tmp_q_69 = Dummy_4240*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4263*tmp_q_1;
+                const double tmp_q_71 = Dummy_4246*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4255*tmp_q_2;
+                const double tmp_q_74 = Dummy_4238*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4258*tmp_q_1;
+                const double tmp_q_76 = Dummy_4241*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4256*tmp_q_2;
+                const double tmp_q_79 = Dummy_4239*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4259*tmp_q_1;
+                const double tmp_q_81 = Dummy_4242*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4257*tmp_q_2;
+                const double tmp_q_84 = Dummy_4240*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4260*tmp_q_1;
+                const double tmp_q_86 = Dummy_4243*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4261*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4262*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4263*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4244*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4245*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4246*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4258*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4259*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4260*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4241*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4242*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4243*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4255*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4256*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4257*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4238*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4239*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4240*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1979,12 +1979,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4261*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4262*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4263*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4258*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4259*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4260*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4244*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4245*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4246*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4241*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4242*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4243*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1995,7 +1995,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4255*Dummy_4255)*tmp_q_103 + (Dummy_4256*Dummy_4256)*tmp_q_103 + (Dummy_4257*Dummy_4257)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4238*Dummy_4238)*tmp_q_103 + (Dummy_4239*Dummy_4239)*tmp_q_103 + (Dummy_4240*Dummy_4240)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -2004,7 +2004,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4258*Dummy_4258)*tmp_q_107 + (Dummy_4259*Dummy_4259)*tmp_q_107 + (Dummy_4260*Dummy_4260)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4241*Dummy_4241)*tmp_q_107 + (Dummy_4242*Dummy_4242)*tmp_q_107 + (Dummy_4243*Dummy_4243)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -2012,7 +2012,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4261*Dummy_4261)*tmp_q_108 + (Dummy_4262*Dummy_4262)*tmp_q_108 + (Dummy_4263*Dummy_4263)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4244*Dummy_4244)*tmp_q_108 + (Dummy_4245*Dummy_4245)*tmp_q_108 + (Dummy_4246*Dummy_4246)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -2039,7 +2039,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4256*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4257*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4255*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4239*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4240*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4238*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -2177,15 +2177,15 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
              const double src_dof_8 = _data_srcEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double src_dof_9 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -2248,9 +2248,9 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4286*tmp_q_4;
-                const double tmp_q_6 = Dummy_4289*tmp_q_4;
-                const double tmp_q_7 = Dummy_4292*tmp_q_4;
+                const double tmp_q_5 = Dummy_4269*tmp_q_4;
+                const double tmp_q_6 = Dummy_4272*tmp_q_4;
+                const double tmp_q_7 = Dummy_4275*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -2263,88 +2263,88 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4287*tmp_q_4;
-                const double tmp_q_21 = Dummy_4290*tmp_q_4;
-                const double tmp_q_22 = Dummy_4293*tmp_q_4;
+                const double tmp_q_20 = Dummy_4270*tmp_q_4;
+                const double tmp_q_21 = Dummy_4273*tmp_q_4;
+                const double tmp_q_22 = Dummy_4276*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4288*tmp_q_4;
-                const double tmp_q_25 = Dummy_4291*tmp_q_4;
-                const double tmp_q_26 = Dummy_4294*tmp_q_4;
+                const double tmp_q_24 = Dummy_4271*tmp_q_4;
+                const double tmp_q_25 = Dummy_4274*tmp_q_4;
+                const double tmp_q_26 = Dummy_4277*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4295*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4278*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4286*tmp_q_29;
+                const double tmp_q_30 = Dummy_4269*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4287*tmp_q_29;
+                const double tmp_q_32 = Dummy_4270*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4288*tmp_q_29;
+                const double tmp_q_34 = Dummy_4271*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4289*tmp_q_36;
-                const double tmp_q_38 = Dummy_4290*tmp_q_36;
-                const double tmp_q_39 = Dummy_4291*tmp_q_36;
+                const double tmp_q_37 = Dummy_4272*tmp_q_36;
+                const double tmp_q_38 = Dummy_4273*tmp_q_36;
+                const double tmp_q_39 = Dummy_4274*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4292*tmp_q_40;
-                const double tmp_q_42 = Dummy_4293*tmp_q_40;
-                const double tmp_q_43 = Dummy_4294*tmp_q_40;
-                const double tmp_q_44 = Dummy_4289*tmp_q_0;
+                const double tmp_q_41 = Dummy_4275*tmp_q_40;
+                const double tmp_q_42 = Dummy_4276*tmp_q_40;
+                const double tmp_q_43 = Dummy_4277*tmp_q_40;
+                const double tmp_q_44 = Dummy_4272*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4292*tmp_q_2;
+                const double tmp_q_46 = Dummy_4275*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4290*tmp_q_0;
+                const double tmp_q_49 = Dummy_4273*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4293*tmp_q_2;
+                const double tmp_q_51 = Dummy_4276*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4291*tmp_q_0;
+                const double tmp_q_54 = Dummy_4274*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4294*tmp_q_2;
+                const double tmp_q_56 = Dummy_4277*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4286*tmp_q_0;
+                const double tmp_q_59 = Dummy_4269*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4292*tmp_q_1;
+                const double tmp_q_61 = Dummy_4275*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4287*tmp_q_0;
+                const double tmp_q_64 = Dummy_4270*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4293*tmp_q_1;
+                const double tmp_q_66 = Dummy_4276*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4288*tmp_q_0;
+                const double tmp_q_69 = Dummy_4271*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4294*tmp_q_1;
+                const double tmp_q_71 = Dummy_4277*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4286*tmp_q_2;
+                const double tmp_q_74 = Dummy_4269*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4289*tmp_q_1;
+                const double tmp_q_76 = Dummy_4272*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4287*tmp_q_2;
+                const double tmp_q_79 = Dummy_4270*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4290*tmp_q_1;
+                const double tmp_q_81 = Dummy_4273*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4288*tmp_q_2;
+                const double tmp_q_84 = Dummy_4271*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4291*tmp_q_1;
+                const double tmp_q_86 = Dummy_4274*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4292*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4293*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4294*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4275*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4276*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4277*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4289*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4290*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4291*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4272*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4273*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4274*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4286*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4287*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4288*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4269*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4270*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4271*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -2361,12 +2361,12 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4292*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4293*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4294*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4289*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4290*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4291*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4275*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4276*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4277*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4272*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4273*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4274*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -2377,7 +2377,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4286*Dummy_4286)*tmp_q_103 + (Dummy_4287*Dummy_4287)*tmp_q_103 + (Dummy_4288*Dummy_4288)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4269*Dummy_4269)*tmp_q_103 + (Dummy_4270*Dummy_4270)*tmp_q_103 + (Dummy_4271*Dummy_4271)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -2386,7 +2386,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4289*Dummy_4289)*tmp_q_107 + (Dummy_4290*Dummy_4290)*tmp_q_107 + (Dummy_4291*Dummy_4291)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4272*Dummy_4272)*tmp_q_107 + (Dummy_4273*Dummy_4273)*tmp_q_107 + (Dummy_4274*Dummy_4274)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -2394,7 +2394,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4292*Dummy_4292)*tmp_q_108 + (Dummy_4293*Dummy_4293)*tmp_q_108 + (Dummy_4294*Dummy_4294)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4275*Dummy_4275)*tmp_q_108 + (Dummy_4276*Dummy_4276)*tmp_q_108 + (Dummy_4277*Dummy_4277)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -2421,7 +2421,7 @@ void P2ElementwiseDivKGrad::apply_macro_3D( double * RESTRICT  _data_dstEdge, do
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4287*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4288*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4286*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4270*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4271*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4269*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
index 78190581f5517cd58ed39323843a83d17b7b39ea..347ac5facbe50759e5d66cf3a9e3748b1482f558 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float, int64_t micro_edges_per_macro_face ) const
+void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,51 +78,36 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double Dummy_4626 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4627 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4628 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4629 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4630 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4631 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4632 = -Dummy_4626 + Dummy_4628;
-       const double Dummy_4633 = -Dummy_4626 + Dummy_4630;
-       const double Dummy_4634 = -Dummy_4627 + Dummy_4629;
-       const double Dummy_4635 = -Dummy_4627 + Dummy_4631;
-       const double Dummy_4636 = Dummy_4635*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4637 = -Dummy_4633*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4638 = -Dummy_4634*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4639 = Dummy_4632*1.0 / (Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
-       const double Dummy_4640 = fabs(Dummy_4632*Dummy_4635 - Dummy_4633*Dummy_4634);
+       const double Dummy_4609 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4610 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4611 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4612 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4613 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4614 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4615 = -Dummy_4609 + Dummy_4611;
+       const double Dummy_4616 = -Dummy_4609 + Dummy_4613;
+       const double Dummy_4617 = -Dummy_4610 + Dummy_4612;
+       const double Dummy_4618 = -Dummy_4610 + Dummy_4614;
+       const double Dummy_4619 = Dummy_4618*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4620 = -Dummy_4616*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4621 = -Dummy_4617*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4622 = Dummy_4615*1.0 / (Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
+       const double Dummy_4623 = fabs(Dummy_4615*Dummy_4618 - Dummy_4616*Dummy_4617);
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
              double q_acc_5_5 = 0.0;
              for (int64_t q = 0; q < 3; q += 1)
              {
@@ -131,107 +116,42 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
                 const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
                 const double tmp_q_3 = jac_affine_inv_0_0*tmp_q_2;
                 const double tmp_q_4 = jac_affine_inv_1_0*tmp_q_2;
-                const double tmp_q_5 = tmp_q_3 + tmp_q_4;
-                const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
-                const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_8 = tmp_q_7*2.0;
-                const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_10 = tmp_q_9*2.0;
-                const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                const double tmp_q_12 = jac_affine_inv_0_1*tmp_q_2;
-                const double tmp_q_13 = jac_affine_inv_1_1*tmp_q_2;
-                const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                const double tmp_q_15 = abs_det_jac_affine*_data_q_w[q];
-                const double tmp_q_16 = tmp_q_0 - 1.0;
-                const double tmp_q_17 = jac_affine_inv_0_0*tmp_q_16;
-                const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                const double tmp_q_19 = jac_affine_inv_0_1*tmp_q_16;
-                const double tmp_q_20 = tmp_q_11*tmp_q_14;
-                const double tmp_q_21 = tmp_q_1 - 1.0;
-                const double tmp_q_22 = jac_affine_inv_1_0*tmp_q_21;
-                const double tmp_q_23 = jac_affine_inv_1_1*tmp_q_21;
-                const double tmp_q_24 = jac_affine_inv_0_0*tmp_q_1;
-                const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                const double tmp_q_26 = jac_affine_inv_1_0*tmp_q_0;
-                const double tmp_q_27 = tmp_q_11*tmp_q_26;
-                const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                const double tmp_q_29 = jac_affine_inv_0_1*tmp_q_1;
-                const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                const double tmp_q_31 = jac_affine_inv_1_1*tmp_q_0;
-                const double tmp_q_32 = tmp_q_11*tmp_q_31;
-                const double tmp_q_33 = tmp_q_30 + tmp_q_32;
-                const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                const double tmp_q_35 = jac_affine_inv_1_0*tmp_q_11*tmp_q_34 - tmp_q_25;
-                const double tmp_q_36 = jac_affine_inv_1_1*tmp_q_11*tmp_q_34 - tmp_q_30;
-                const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                const double tmp_q_38 = jac_affine_inv_0_0*tmp_q_37;
-                const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                const double tmp_q_40 = jac_affine_inv_0_1*tmp_q_37;
-                const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
-                const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
-                const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
-                const double tmp_q_44 = tmp_q_24 + tmp_q_26;
-                const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                const double tmp_q_46 = jac_affine_inv_1_0*tmp_q_34 - tmp_q_24;
-                const double tmp_q_47 = jac_affine_inv_1_1*tmp_q_34 - tmp_q_29;
-                const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
-                const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
-                const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
-                const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
-                const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
-                const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                const double res_tmp_1_1 = tmp_q_15*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_42 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_42);
-                const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
-                const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
-                const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
-                const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                const double res_tmp_2_2 = tmp_q_15*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_43 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_43);
-                const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
-                const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
-                const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
-                const double res_tmp_3_3 = tmp_q_15*(tmp_q_28*tmp_q_44 + tmp_q_33*tmp_q_45);
-                const double res_tmp_3_4 = tmp_q_15*(tmp_q_35*tmp_q_44 + tmp_q_36*tmp_q_45);
-                const double res_tmp_3_5 = tmp_q_15*(tmp_q_39*tmp_q_44 + tmp_q_41*tmp_q_45);
-                const double res_tmp_4_4 = tmp_q_15*(tmp_q_35*tmp_q_46 + tmp_q_36*tmp_q_47);
-                const double res_tmp_4_5 = tmp_q_15*(tmp_q_39*tmp_q_46 + tmp_q_41*tmp_q_47);
-                const double res_tmp_5_5 = tmp_q_15*(tmp_q_39*(-tmp_q_26 + tmp_q_38) + tmp_q_41*(-tmp_q_31 + tmp_q_40));
+                const double tmp_q_5 = tmp_q_0*_data_q_p_1[q];
+                const double tmp_q_6 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_7 = tmp_q_6*2.0;
+                const double tmp_q_8 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_9 = tmp_q_8*2.0;
+                const double tmp_q_10 = k_dof_0*(tmp_q_5 + tmp_q_7 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_7 - _data_q_p_0[q]) + k_dof_2*(tmp_q_9 - _data_q_p_1[q]) + k_dof_3*tmp_q_5 + k_dof_4*(tmp_q_1 - tmp_q_5 + tmp_q_8*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_5 + tmp_q_6*-4.0);
+                const double tmp_q_11 = jac_affine_inv_0_1*tmp_q_2;
+                const double tmp_q_12 = jac_affine_inv_1_1*tmp_q_2;
+                const double tmp_q_13 = abs_det_jac_affine*_data_q_w[q];
+                const double tmp_q_14 = tmp_q_10*((tmp_q_0 - 1.0)*(tmp_q_0 - 1.0));
+                const double tmp_q_15 = tmp_q_10*((tmp_q_1 - 1.0)*(tmp_q_1 - 1.0));
+                const double tmp_q_16 = jac_affine_inv_0_0*tmp_q_1;
+                const double tmp_q_17 = jac_affine_inv_1_0*tmp_q_0;
+                const double tmp_q_18 = tmp_q_10*tmp_q_16;
+                const double tmp_q_19 = tmp_q_10*tmp_q_17;
+                const double tmp_q_20 = jac_affine_inv_0_1*tmp_q_1;
+                const double tmp_q_21 = jac_affine_inv_1_1*tmp_q_0;
+                const double tmp_q_22 = tmp_q_10*tmp_q_20;
+                const double tmp_q_23 = tmp_q_10*tmp_q_21;
+                const double tmp_q_24 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
+                const double tmp_q_25 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
+                const double tmp_q_26 = jac_affine_inv_0_0*tmp_q_25;
+                const double tmp_q_27 = jac_affine_inv_0_1*tmp_q_25;
+                const double res_tmp_0_0 = tmp_q_13*((tmp_q_11 + tmp_q_12)*(tmp_q_10*tmp_q_11 + tmp_q_10*tmp_q_12) + (tmp_q_3 + tmp_q_4)*(tmp_q_10*tmp_q_3 + tmp_q_10*tmp_q_4));
+                const double res_tmp_1_1 = tmp_q_13*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_14 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_14);
+                const double res_tmp_2_2 = tmp_q_13*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_15 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_15);
+                const double res_tmp_3_3 = tmp_q_13*((tmp_q_16 + tmp_q_17)*(tmp_q_18 + tmp_q_19) + (tmp_q_20 + tmp_q_21)*(tmp_q_22 + tmp_q_23));
+                const double res_tmp_4_4 = tmp_q_13*((jac_affine_inv_1_0*tmp_q_24 - tmp_q_16)*(jac_affine_inv_1_0*tmp_q_10*tmp_q_24 - tmp_q_18) + (jac_affine_inv_1_1*tmp_q_24 - tmp_q_20)*(jac_affine_inv_1_1*tmp_q_10*tmp_q_24 - tmp_q_22));
+                const double res_tmp_5_5 = tmp_q_13*((-tmp_q_17 + tmp_q_26)*(tmp_q_10*tmp_q_26 - tmp_q_19) + (-tmp_q_21 + tmp_q_27)*(tmp_q_10*tmp_q_27 - tmp_q_23));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -241,148 +161,68 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
              _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
              _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
           }
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
              double q_acc_5_5 = 0.0;
              for (int64_t q = 0; q < 3; q += 1)
              {
                 const double tmp_q_0 = 4.0*_data_q_p_0[q];
                 const double tmp_q_1 = 4.0*_data_q_p_1[q];
                 const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
-                const double tmp_q_3 = Dummy_4636*tmp_q_2;
-                const double tmp_q_4 = Dummy_4638*tmp_q_2;
-                const double tmp_q_5 = tmp_q_3 + tmp_q_4;
-                const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
-                const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_8 = tmp_q_7*2.0;
-                const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_10 = tmp_q_9*2.0;
-                const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                const double tmp_q_12 = Dummy_4637*tmp_q_2;
-                const double tmp_q_13 = Dummy_4639*tmp_q_2;
-                const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                const double tmp_q_15 = Dummy_4640*_data_q_w[q];
-                const double tmp_q_16 = tmp_q_0 - 1.0;
-                const double tmp_q_17 = Dummy_4636*tmp_q_16;
-                const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                const double tmp_q_19 = Dummy_4637*tmp_q_16;
-                const double tmp_q_20 = tmp_q_11*tmp_q_14;
-                const double tmp_q_21 = tmp_q_1 - 1.0;
-                const double tmp_q_22 = Dummy_4638*tmp_q_21;
-                const double tmp_q_23 = Dummy_4639*tmp_q_21;
-                const double tmp_q_24 = Dummy_4636*tmp_q_1;
-                const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                const double tmp_q_26 = Dummy_4638*tmp_q_0;
-                const double tmp_q_27 = tmp_q_11*tmp_q_26;
-                const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                const double tmp_q_29 = Dummy_4637*tmp_q_1;
-                const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                const double tmp_q_31 = Dummy_4639*tmp_q_0;
-                const double tmp_q_32 = tmp_q_11*tmp_q_31;
-                const double tmp_q_33 = tmp_q_30 + tmp_q_32;
-                const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                const double tmp_q_35 = Dummy_4638*tmp_q_11*tmp_q_34 - tmp_q_25;
-                const double tmp_q_36 = Dummy_4639*tmp_q_11*tmp_q_34 - tmp_q_30;
-                const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                const double tmp_q_38 = Dummy_4636*tmp_q_37;
-                const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                const double tmp_q_40 = Dummy_4637*tmp_q_37;
-                const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
-                const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
-                const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
-                const double tmp_q_44 = tmp_q_24 + tmp_q_26;
-                const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                const double tmp_q_46 = Dummy_4638*tmp_q_34 - tmp_q_24;
-                const double tmp_q_47 = Dummy_4639*tmp_q_34 - tmp_q_29;
-                const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
-                const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
-                const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
-                const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
-                const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
-                const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                const double res_tmp_1_1 = tmp_q_15*((Dummy_4636*Dummy_4636)*tmp_q_42 + (Dummy_4637*Dummy_4637)*tmp_q_42);
-                const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
-                const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
-                const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
-                const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                const double res_tmp_2_2 = tmp_q_15*((Dummy_4638*Dummy_4638)*tmp_q_43 + (Dummy_4639*Dummy_4639)*tmp_q_43);
-                const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
-                const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
-                const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
-                const double res_tmp_3_3 = tmp_q_15*(tmp_q_28*tmp_q_44 + tmp_q_33*tmp_q_45);
-                const double res_tmp_3_4 = tmp_q_15*(tmp_q_35*tmp_q_44 + tmp_q_36*tmp_q_45);
-                const double res_tmp_3_5 = tmp_q_15*(tmp_q_39*tmp_q_44 + tmp_q_41*tmp_q_45);
-                const double res_tmp_4_4 = tmp_q_15*(tmp_q_35*tmp_q_46 + tmp_q_36*tmp_q_47);
-                const double res_tmp_4_5 = tmp_q_15*(tmp_q_39*tmp_q_46 + tmp_q_41*tmp_q_47);
-                const double res_tmp_5_5 = tmp_q_15*(tmp_q_39*(-tmp_q_26 + tmp_q_38) + tmp_q_41*(-tmp_q_31 + tmp_q_40));
+                const double tmp_q_3 = Dummy_4619*tmp_q_2;
+                const double tmp_q_4 = Dummy_4621*tmp_q_2;
+                const double tmp_q_5 = tmp_q_0*_data_q_p_1[q];
+                const double tmp_q_6 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_7 = tmp_q_6*2.0;
+                const double tmp_q_8 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_9 = tmp_q_8*2.0;
+                const double tmp_q_10 = k_dof_0*(tmp_q_5 + tmp_q_7 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_7 - _data_q_p_0[q]) + k_dof_2*(tmp_q_9 - _data_q_p_1[q]) + k_dof_3*tmp_q_5 + k_dof_4*(tmp_q_1 - tmp_q_5 + tmp_q_8*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_5 + tmp_q_6*-4.0);
+                const double tmp_q_11 = Dummy_4620*tmp_q_2;
+                const double tmp_q_12 = Dummy_4622*tmp_q_2;
+                const double tmp_q_13 = Dummy_4623*_data_q_w[q];
+                const double tmp_q_14 = tmp_q_10*((tmp_q_0 - 1.0)*(tmp_q_0 - 1.0));
+                const double tmp_q_15 = tmp_q_10*((tmp_q_1 - 1.0)*(tmp_q_1 - 1.0));
+                const double tmp_q_16 = Dummy_4619*tmp_q_1;
+                const double tmp_q_17 = Dummy_4621*tmp_q_0;
+                const double tmp_q_18 = tmp_q_10*tmp_q_16;
+                const double tmp_q_19 = tmp_q_10*tmp_q_17;
+                const double tmp_q_20 = Dummy_4620*tmp_q_1;
+                const double tmp_q_21 = Dummy_4622*tmp_q_0;
+                const double tmp_q_22 = tmp_q_10*tmp_q_20;
+                const double tmp_q_23 = tmp_q_10*tmp_q_21;
+                const double tmp_q_24 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
+                const double tmp_q_25 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
+                const double tmp_q_26 = Dummy_4619*tmp_q_25;
+                const double tmp_q_27 = Dummy_4620*tmp_q_25;
+                const double res_tmp_0_0 = tmp_q_13*((tmp_q_11 + tmp_q_12)*(tmp_q_10*tmp_q_11 + tmp_q_10*tmp_q_12) + (tmp_q_3 + tmp_q_4)*(tmp_q_10*tmp_q_3 + tmp_q_10*tmp_q_4));
+                const double res_tmp_1_1 = tmp_q_13*((Dummy_4619*Dummy_4619)*tmp_q_14 + (Dummy_4620*Dummy_4620)*tmp_q_14);
+                const double res_tmp_2_2 = tmp_q_13*((Dummy_4621*Dummy_4621)*tmp_q_15 + (Dummy_4622*Dummy_4622)*tmp_q_15);
+                const double res_tmp_3_3 = tmp_q_13*((tmp_q_16 + tmp_q_17)*(tmp_q_18 + tmp_q_19) + (tmp_q_20 + tmp_q_21)*(tmp_q_22 + tmp_q_23));
+                const double res_tmp_4_4 = tmp_q_13*((Dummy_4621*tmp_q_24 - tmp_q_16)*(Dummy_4621*tmp_q_10*tmp_q_24 - tmp_q_18) + (Dummy_4622*tmp_q_24 - tmp_q_20)*(Dummy_4622*tmp_q_10*tmp_q_24 - tmp_q_22));
+                const double res_tmp_5_5 = tmp_q_13*((-tmp_q_17 + tmp_q_26)*(tmp_q_10*tmp_q_26 - tmp_q_19) + (-tmp_q_21 + tmp_q_27)*(tmp_q_10*tmp_q_27 - tmp_q_23));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -393,8 +233,8 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_2D( doubl
              _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
              _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
           }
        }
     }
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
index 6c2231b8292a24e18df4e03927cead046124f6e7..9de80d02460c7eb37f57824bbceebec8e4705610 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_computeInverseDiagonalOperatorValues_macro_3D.cpp
@@ -57,13 +57,13 @@ namespace operatorgeneration {
 void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( double * RESTRICT  _data_invDiag_Edge, double * RESTRICT  _data_invDiag_Vertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,230 +96,185 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double Dummy_4749 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4750 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4751 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4752 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4753 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4754 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4755 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4756 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4757 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4758 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4759 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4760 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4761 = -Dummy_4749 + Dummy_4752;
-       const double Dummy_4762 = -Dummy_4749 + Dummy_4755;
-       const double Dummy_4763 = -Dummy_4749 + Dummy_4758;
-       const double Dummy_4764 = -Dummy_4750 + Dummy_4753;
-       const double Dummy_4765 = -Dummy_4750 + Dummy_4756;
-       const double Dummy_4766 = -Dummy_4750 + Dummy_4759;
-       const double Dummy_4767 = -Dummy_4751 + Dummy_4754;
-       const double Dummy_4768 = -Dummy_4751 + Dummy_4757;
-       const double Dummy_4769 = -Dummy_4751 + Dummy_4760;
-       const double Dummy_4770 = (Dummy_4765*Dummy_4769 - Dummy_4766*Dummy_4768)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4771 = (-Dummy_4762*Dummy_4769 + Dummy_4763*Dummy_4768)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4772 = (Dummy_4762*Dummy_4766 - Dummy_4763*Dummy_4765)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4773 = (-Dummy_4764*Dummy_4769 + Dummy_4766*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4774 = (Dummy_4761*Dummy_4769 - Dummy_4763*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4775 = (-Dummy_4761*Dummy_4766 + Dummy_4763*Dummy_4764)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4776 = (Dummy_4764*Dummy_4768 - Dummy_4765*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4777 = (-Dummy_4761*Dummy_4768 + Dummy_4762*Dummy_4767)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4778 = (Dummy_4761*Dummy_4765 - Dummy_4762*Dummy_4764)*1.0 / (Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4779 = fabs(Dummy_4761*Dummy_4765*Dummy_4769 - Dummy_4761*Dummy_4766*Dummy_4768 - Dummy_4762*Dummy_4764*Dummy_4769 + Dummy_4762*Dummy_4766*Dummy_4767 + Dummy_4763*Dummy_4764*Dummy_4768 - Dummy_4763*Dummy_4765*Dummy_4767);
-       const double Dummy_4780 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4781 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4782 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4783 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4784 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4785 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4786 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4787 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4788 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4789 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4790 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4791 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4792 = -Dummy_4780 + Dummy_4783;
-       const double Dummy_4793 = -Dummy_4780 + Dummy_4786;
-       const double Dummy_4794 = -Dummy_4780 + Dummy_4789;
-       const double Dummy_4795 = -Dummy_4781 + Dummy_4784;
-       const double Dummy_4796 = -Dummy_4781 + Dummy_4787;
-       const double Dummy_4797 = -Dummy_4781 + Dummy_4790;
-       const double Dummy_4798 = -Dummy_4782 + Dummy_4785;
-       const double Dummy_4799 = -Dummy_4782 + Dummy_4788;
-       const double Dummy_4800 = -Dummy_4782 + Dummy_4791;
-       const double Dummy_4801 = (Dummy_4796*Dummy_4800 - Dummy_4797*Dummy_4799)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4802 = (-Dummy_4793*Dummy_4800 + Dummy_4794*Dummy_4799)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4803 = (Dummy_4793*Dummy_4797 - Dummy_4794*Dummy_4796)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4804 = (-Dummy_4795*Dummy_4800 + Dummy_4797*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4805 = (Dummy_4792*Dummy_4800 - Dummy_4794*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4806 = (-Dummy_4792*Dummy_4797 + Dummy_4794*Dummy_4795)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4807 = (Dummy_4795*Dummy_4799 - Dummy_4796*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4808 = (-Dummy_4792*Dummy_4799 + Dummy_4793*Dummy_4798)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4809 = (Dummy_4792*Dummy_4796 - Dummy_4793*Dummy_4795)*1.0 / (Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4810 = fabs(Dummy_4792*Dummy_4796*Dummy_4800 - Dummy_4792*Dummy_4797*Dummy_4799 - Dummy_4793*Dummy_4795*Dummy_4800 + Dummy_4793*Dummy_4797*Dummy_4798 + Dummy_4794*Dummy_4795*Dummy_4799 - Dummy_4794*Dummy_4796*Dummy_4798);
-       const double Dummy_4811 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4812 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4813 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4814 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4815 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4816 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4817 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4818 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4819 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4820 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4821 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4822 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4823 = -Dummy_4811 + Dummy_4814;
-       const double Dummy_4824 = -Dummy_4811 + Dummy_4817;
-       const double Dummy_4825 = -Dummy_4811 + Dummy_4820;
-       const double Dummy_4826 = -Dummy_4812 + Dummy_4815;
-       const double Dummy_4827 = -Dummy_4812 + Dummy_4818;
-       const double Dummy_4828 = -Dummy_4812 + Dummy_4821;
-       const double Dummy_4829 = -Dummy_4813 + Dummy_4816;
-       const double Dummy_4830 = -Dummy_4813 + Dummy_4819;
-       const double Dummy_4831 = -Dummy_4813 + Dummy_4822;
-       const double Dummy_4832 = (Dummy_4827*Dummy_4831 - Dummy_4828*Dummy_4830)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4833 = (-Dummy_4824*Dummy_4831 + Dummy_4825*Dummy_4830)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4834 = (Dummy_4824*Dummy_4828 - Dummy_4825*Dummy_4827)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4835 = (-Dummy_4826*Dummy_4831 + Dummy_4828*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4836 = (Dummy_4823*Dummy_4831 - Dummy_4825*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4837 = (-Dummy_4823*Dummy_4828 + Dummy_4825*Dummy_4826)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4838 = (Dummy_4826*Dummy_4830 - Dummy_4827*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4839 = (-Dummy_4823*Dummy_4830 + Dummy_4824*Dummy_4829)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4840 = (Dummy_4823*Dummy_4827 - Dummy_4824*Dummy_4826)*1.0 / (Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4841 = fabs(Dummy_4823*Dummy_4827*Dummy_4831 - Dummy_4823*Dummy_4828*Dummy_4830 - Dummy_4824*Dummy_4826*Dummy_4831 + Dummy_4824*Dummy_4828*Dummy_4829 + Dummy_4825*Dummy_4826*Dummy_4830 - Dummy_4825*Dummy_4827*Dummy_4829);
-       const double Dummy_4842 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4843 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4844 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4845 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4846 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4847 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4848 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4849 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4850 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4851 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4852 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4853 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4854 = -Dummy_4842 + Dummy_4845;
-       const double Dummy_4855 = -Dummy_4842 + Dummy_4848;
-       const double Dummy_4856 = -Dummy_4842 + Dummy_4851;
-       const double Dummy_4857 = -Dummy_4843 + Dummy_4846;
-       const double Dummy_4858 = -Dummy_4843 + Dummy_4849;
-       const double Dummy_4859 = -Dummy_4843 + Dummy_4852;
-       const double Dummy_4860 = -Dummy_4844 + Dummy_4847;
-       const double Dummy_4861 = -Dummy_4844 + Dummy_4850;
-       const double Dummy_4862 = -Dummy_4844 + Dummy_4853;
-       const double Dummy_4863 = (Dummy_4858*Dummy_4862 - Dummy_4859*Dummy_4861)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4864 = (-Dummy_4855*Dummy_4862 + Dummy_4856*Dummy_4861)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4865 = (Dummy_4855*Dummy_4859 - Dummy_4856*Dummy_4858)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4866 = (-Dummy_4857*Dummy_4862 + Dummy_4859*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4867 = (Dummy_4854*Dummy_4862 - Dummy_4856*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4868 = (-Dummy_4854*Dummy_4859 + Dummy_4856*Dummy_4857)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4869 = (Dummy_4857*Dummy_4861 - Dummy_4858*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4870 = (-Dummy_4854*Dummy_4861 + Dummy_4855*Dummy_4860)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4871 = (Dummy_4854*Dummy_4858 - Dummy_4855*Dummy_4857)*1.0 / (Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4872 = fabs(Dummy_4854*Dummy_4858*Dummy_4862 - Dummy_4854*Dummy_4859*Dummy_4861 - Dummy_4855*Dummy_4857*Dummy_4862 + Dummy_4855*Dummy_4859*Dummy_4860 + Dummy_4856*Dummy_4857*Dummy_4861 - Dummy_4856*Dummy_4858*Dummy_4860);
-       const double Dummy_4873 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4874 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4875 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4876 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4877 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4878 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4879 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4880 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4881 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4882 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4883 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4884 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4885 = -Dummy_4873 + Dummy_4876;
-       const double Dummy_4886 = -Dummy_4873 + Dummy_4879;
-       const double Dummy_4887 = -Dummy_4873 + Dummy_4882;
-       const double Dummy_4888 = -Dummy_4874 + Dummy_4877;
-       const double Dummy_4889 = -Dummy_4874 + Dummy_4880;
-       const double Dummy_4890 = -Dummy_4874 + Dummy_4883;
-       const double Dummy_4891 = -Dummy_4875 + Dummy_4878;
-       const double Dummy_4892 = -Dummy_4875 + Dummy_4881;
-       const double Dummy_4893 = -Dummy_4875 + Dummy_4884;
-       const double Dummy_4894 = (Dummy_4889*Dummy_4893 - Dummy_4890*Dummy_4892)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4895 = (-Dummy_4886*Dummy_4893 + Dummy_4887*Dummy_4892)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4896 = (Dummy_4886*Dummy_4890 - Dummy_4887*Dummy_4889)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4897 = (-Dummy_4888*Dummy_4893 + Dummy_4890*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4898 = (Dummy_4885*Dummy_4893 - Dummy_4887*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4899 = (-Dummy_4885*Dummy_4890 + Dummy_4887*Dummy_4888)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4900 = (Dummy_4888*Dummy_4892 - Dummy_4889*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4901 = (-Dummy_4885*Dummy_4892 + Dummy_4886*Dummy_4891)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4902 = (Dummy_4885*Dummy_4889 - Dummy_4886*Dummy_4888)*1.0 / (Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
-       const double Dummy_4903 = fabs(Dummy_4885*Dummy_4889*Dummy_4893 - Dummy_4885*Dummy_4890*Dummy_4892 - Dummy_4886*Dummy_4888*Dummy_4893 + Dummy_4886*Dummy_4890*Dummy_4891 + Dummy_4887*Dummy_4888*Dummy_4892 - Dummy_4887*Dummy_4889*Dummy_4891);
+       const double Dummy_4732 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4733 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4734 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4735 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4736 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4737 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4738 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4739 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4740 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4741 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4742 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4743 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4744 = -Dummy_4732 + Dummy_4735;
+       const double Dummy_4745 = -Dummy_4732 + Dummy_4738;
+       const double Dummy_4746 = -Dummy_4732 + Dummy_4741;
+       const double Dummy_4747 = -Dummy_4733 + Dummy_4736;
+       const double Dummy_4748 = -Dummy_4733 + Dummy_4739;
+       const double Dummy_4749 = -Dummy_4733 + Dummy_4742;
+       const double Dummy_4750 = -Dummy_4734 + Dummy_4737;
+       const double Dummy_4751 = -Dummy_4734 + Dummy_4740;
+       const double Dummy_4752 = -Dummy_4734 + Dummy_4743;
+       const double Dummy_4753 = (Dummy_4748*Dummy_4752 - Dummy_4749*Dummy_4751)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4754 = (-Dummy_4745*Dummy_4752 + Dummy_4746*Dummy_4751)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4755 = (Dummy_4745*Dummy_4749 - Dummy_4746*Dummy_4748)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4756 = (-Dummy_4747*Dummy_4752 + Dummy_4749*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4757 = (Dummy_4744*Dummy_4752 - Dummy_4746*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4758 = (-Dummy_4744*Dummy_4749 + Dummy_4746*Dummy_4747)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4759 = (Dummy_4747*Dummy_4751 - Dummy_4748*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4760 = (-Dummy_4744*Dummy_4751 + Dummy_4745*Dummy_4750)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4761 = (Dummy_4744*Dummy_4748 - Dummy_4745*Dummy_4747)*1.0 / (Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4762 = fabs(Dummy_4744*Dummy_4748*Dummy_4752 - Dummy_4744*Dummy_4749*Dummy_4751 - Dummy_4745*Dummy_4747*Dummy_4752 + Dummy_4745*Dummy_4749*Dummy_4750 + Dummy_4746*Dummy_4747*Dummy_4751 - Dummy_4746*Dummy_4748*Dummy_4750);
+       const double Dummy_4763 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4764 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4765 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4766 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4767 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4768 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4769 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4770 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4771 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4772 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4773 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4774 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4775 = -Dummy_4763 + Dummy_4766;
+       const double Dummy_4776 = -Dummy_4763 + Dummy_4769;
+       const double Dummy_4777 = -Dummy_4763 + Dummy_4772;
+       const double Dummy_4778 = -Dummy_4764 + Dummy_4767;
+       const double Dummy_4779 = -Dummy_4764 + Dummy_4770;
+       const double Dummy_4780 = -Dummy_4764 + Dummy_4773;
+       const double Dummy_4781 = -Dummy_4765 + Dummy_4768;
+       const double Dummy_4782 = -Dummy_4765 + Dummy_4771;
+       const double Dummy_4783 = -Dummy_4765 + Dummy_4774;
+       const double Dummy_4784 = (Dummy_4779*Dummy_4783 - Dummy_4780*Dummy_4782)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4785 = (-Dummy_4776*Dummy_4783 + Dummy_4777*Dummy_4782)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4786 = (Dummy_4776*Dummy_4780 - Dummy_4777*Dummy_4779)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4787 = (-Dummy_4778*Dummy_4783 + Dummy_4780*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4788 = (Dummy_4775*Dummy_4783 - Dummy_4777*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4789 = (-Dummy_4775*Dummy_4780 + Dummy_4777*Dummy_4778)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4790 = (Dummy_4778*Dummy_4782 - Dummy_4779*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4791 = (-Dummy_4775*Dummy_4782 + Dummy_4776*Dummy_4781)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4792 = (Dummy_4775*Dummy_4779 - Dummy_4776*Dummy_4778)*1.0 / (Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4793 = fabs(Dummy_4775*Dummy_4779*Dummy_4783 - Dummy_4775*Dummy_4780*Dummy_4782 - Dummy_4776*Dummy_4778*Dummy_4783 + Dummy_4776*Dummy_4780*Dummy_4781 + Dummy_4777*Dummy_4778*Dummy_4782 - Dummy_4777*Dummy_4779*Dummy_4781);
+       const double Dummy_4794 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4795 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4796 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4797 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4798 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4799 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4800 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4801 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4802 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4803 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4804 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4805 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4806 = -Dummy_4794 + Dummy_4797;
+       const double Dummy_4807 = -Dummy_4794 + Dummy_4800;
+       const double Dummy_4808 = -Dummy_4794 + Dummy_4803;
+       const double Dummy_4809 = -Dummy_4795 + Dummy_4798;
+       const double Dummy_4810 = -Dummy_4795 + Dummy_4801;
+       const double Dummy_4811 = -Dummy_4795 + Dummy_4804;
+       const double Dummy_4812 = -Dummy_4796 + Dummy_4799;
+       const double Dummy_4813 = -Dummy_4796 + Dummy_4802;
+       const double Dummy_4814 = -Dummy_4796 + Dummy_4805;
+       const double Dummy_4815 = (Dummy_4810*Dummy_4814 - Dummy_4811*Dummy_4813)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4816 = (-Dummy_4807*Dummy_4814 + Dummy_4808*Dummy_4813)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4817 = (Dummy_4807*Dummy_4811 - Dummy_4808*Dummy_4810)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4818 = (-Dummy_4809*Dummy_4814 + Dummy_4811*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4819 = (Dummy_4806*Dummy_4814 - Dummy_4808*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4820 = (-Dummy_4806*Dummy_4811 + Dummy_4808*Dummy_4809)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4821 = (Dummy_4809*Dummy_4813 - Dummy_4810*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4822 = (-Dummy_4806*Dummy_4813 + Dummy_4807*Dummy_4812)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4823 = (Dummy_4806*Dummy_4810 - Dummy_4807*Dummy_4809)*1.0 / (Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4824 = fabs(Dummy_4806*Dummy_4810*Dummy_4814 - Dummy_4806*Dummy_4811*Dummy_4813 - Dummy_4807*Dummy_4809*Dummy_4814 + Dummy_4807*Dummy_4811*Dummy_4812 + Dummy_4808*Dummy_4809*Dummy_4813 - Dummy_4808*Dummy_4810*Dummy_4812);
+       const double Dummy_4825 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4826 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4827 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4828 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4829 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4830 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4831 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4832 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4833 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4834 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4835 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4836 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4837 = -Dummy_4825 + Dummy_4828;
+       const double Dummy_4838 = -Dummy_4825 + Dummy_4831;
+       const double Dummy_4839 = -Dummy_4825 + Dummy_4834;
+       const double Dummy_4840 = -Dummy_4826 + Dummy_4829;
+       const double Dummy_4841 = -Dummy_4826 + Dummy_4832;
+       const double Dummy_4842 = -Dummy_4826 + Dummy_4835;
+       const double Dummy_4843 = -Dummy_4827 + Dummy_4830;
+       const double Dummy_4844 = -Dummy_4827 + Dummy_4833;
+       const double Dummy_4845 = -Dummy_4827 + Dummy_4836;
+       const double Dummy_4846 = (Dummy_4841*Dummy_4845 - Dummy_4842*Dummy_4844)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4847 = (-Dummy_4838*Dummy_4845 + Dummy_4839*Dummy_4844)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4848 = (Dummy_4838*Dummy_4842 - Dummy_4839*Dummy_4841)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4849 = (-Dummy_4840*Dummy_4845 + Dummy_4842*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4850 = (Dummy_4837*Dummy_4845 - Dummy_4839*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4851 = (-Dummy_4837*Dummy_4842 + Dummy_4839*Dummy_4840)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4852 = (Dummy_4840*Dummy_4844 - Dummy_4841*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4853 = (-Dummy_4837*Dummy_4844 + Dummy_4838*Dummy_4843)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4854 = (Dummy_4837*Dummy_4841 - Dummy_4838*Dummy_4840)*1.0 / (Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4855 = fabs(Dummy_4837*Dummy_4841*Dummy_4845 - Dummy_4837*Dummy_4842*Dummy_4844 - Dummy_4838*Dummy_4840*Dummy_4845 + Dummy_4838*Dummy_4842*Dummy_4843 + Dummy_4839*Dummy_4840*Dummy_4844 - Dummy_4839*Dummy_4841*Dummy_4843);
+       const double Dummy_4856 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4857 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4858 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4859 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4860 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4861 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4862 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4863 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4864 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4865 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4866 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4867 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4868 = -Dummy_4856 + Dummy_4859;
+       const double Dummy_4869 = -Dummy_4856 + Dummy_4862;
+       const double Dummy_4870 = -Dummy_4856 + Dummy_4865;
+       const double Dummy_4871 = -Dummy_4857 + Dummy_4860;
+       const double Dummy_4872 = -Dummy_4857 + Dummy_4863;
+       const double Dummy_4873 = -Dummy_4857 + Dummy_4866;
+       const double Dummy_4874 = -Dummy_4858 + Dummy_4861;
+       const double Dummy_4875 = -Dummy_4858 + Dummy_4864;
+       const double Dummy_4876 = -Dummy_4858 + Dummy_4867;
+       const double Dummy_4877 = (Dummy_4872*Dummy_4876 - Dummy_4873*Dummy_4875)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4878 = (-Dummy_4869*Dummy_4876 + Dummy_4870*Dummy_4875)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4879 = (Dummy_4869*Dummy_4873 - Dummy_4870*Dummy_4872)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4880 = (-Dummy_4871*Dummy_4876 + Dummy_4873*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4881 = (Dummy_4868*Dummy_4876 - Dummy_4870*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4882 = (-Dummy_4868*Dummy_4873 + Dummy_4870*Dummy_4871)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4883 = (Dummy_4871*Dummy_4875 - Dummy_4872*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4884 = (-Dummy_4868*Dummy_4875 + Dummy_4869*Dummy_4874)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4885 = (Dummy_4868*Dummy_4872 - Dummy_4869*Dummy_4871)*1.0 / (Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
+       const double Dummy_4886 = fabs(Dummy_4868*Dummy_4872*Dummy_4876 - Dummy_4868*Dummy_4873*Dummy_4875 - Dummy_4869*Dummy_4871*Dummy_4876 + Dummy_4869*Dummy_4873*Dummy_4874 + Dummy_4870*Dummy_4871*Dummy_4875 - Dummy_4870*Dummy_4872*Dummy_4874);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -331,278 +286,89 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_5 = jac_affine_inv_0_0*tmp_q_4;
                 const double tmp_q_6 = jac_affine_inv_1_0*tmp_q_4;
                 const double tmp_q_7 = jac_affine_inv_2_0*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = jac_affine_inv_0_1*tmp_q_4;
-                const double tmp_q_21 = jac_affine_inv_1_1*tmp_q_4;
-                const double tmp_q_22 = jac_affine_inv_2_1*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = jac_affine_inv_0_2*tmp_q_4;
-                const double tmp_q_25 = jac_affine_inv_1_2*tmp_q_4;
-                const double tmp_q_26 = jac_affine_inv_2_2*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = abs_det_jac_affine*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = jac_affine_inv_0_0*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = jac_affine_inv_0_1*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = jac_affine_inv_0_2*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = jac_affine_inv_1_0*tmp_q_36;
-                const double tmp_q_38 = jac_affine_inv_1_1*tmp_q_36;
-                const double tmp_q_39 = jac_affine_inv_1_2*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = jac_affine_inv_2_0*tmp_q_40;
-                const double tmp_q_42 = jac_affine_inv_2_1*tmp_q_40;
-                const double tmp_q_43 = jac_affine_inv_2_2*tmp_q_40;
-                const double tmp_q_44 = jac_affine_inv_1_0*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = jac_affine_inv_2_0*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = jac_affine_inv_1_1*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = jac_affine_inv_2_1*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = jac_affine_inv_1_2*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = jac_affine_inv_2_2*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = jac_affine_inv_0_0*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = jac_affine_inv_2_0*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = jac_affine_inv_0_1*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = jac_affine_inv_2_1*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = jac_affine_inv_0_2*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = jac_affine_inv_2_2*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = jac_affine_inv_0_0*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = jac_affine_inv_1_0*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = jac_affine_inv_0_1*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = jac_affine_inv_1_1*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = jac_affine_inv_0_2*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = jac_affine_inv_1_2*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = jac_affine_inv_2_0*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = jac_affine_inv_2_1*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = jac_affine_inv_2_2*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = jac_affine_inv_1_0*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = jac_affine_inv_1_1*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = jac_affine_inv_1_2*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = jac_affine_inv_0_0*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = jac_affine_inv_0_1*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = jac_affine_inv_0_2*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = jac_affine_inv_2_0*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = jac_affine_inv_2_1*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = jac_affine_inv_2_2*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = jac_affine_inv_1_0*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = jac_affine_inv_1_1*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = jac_affine_inv_1_2*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_103 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_103 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_107 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_107 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_108 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_108 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(jac_affine_inv_0_1*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(jac_affine_inv_0_2*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(jac_affine_inv_0_0*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = jac_affine_inv_0_1*tmp_q_4;
+                const double tmp_q_20 = jac_affine_inv_1_1*tmp_q_4;
+                const double tmp_q_21 = jac_affine_inv_2_1*tmp_q_4;
+                const double tmp_q_22 = jac_affine_inv_0_2*tmp_q_4;
+                const double tmp_q_23 = jac_affine_inv_1_2*tmp_q_4;
+                const double tmp_q_24 = jac_affine_inv_2_2*tmp_q_4;
+                const double tmp_q_25 = abs_det_jac_affine*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = jac_affine_inv_1_0*tmp_q_0;
+                const double tmp_q_31 = jac_affine_inv_2_0*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = jac_affine_inv_1_1*tmp_q_0;
+                const double tmp_q_35 = jac_affine_inv_2_1*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = jac_affine_inv_1_2*tmp_q_0;
+                const double tmp_q_39 = jac_affine_inv_2_2*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = jac_affine_inv_0_0*tmp_q_0;
+                const double tmp_q_43 = jac_affine_inv_2_0*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = jac_affine_inv_0_1*tmp_q_0;
+                const double tmp_q_47 = jac_affine_inv_2_1*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = jac_affine_inv_0_2*tmp_q_0;
+                const double tmp_q_51 = jac_affine_inv_2_2*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = jac_affine_inv_0_0*tmp_q_2;
+                const double tmp_q_55 = jac_affine_inv_1_0*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = jac_affine_inv_0_1*tmp_q_2;
+                const double tmp_q_59 = jac_affine_inv_1_1*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = jac_affine_inv_0_2*tmp_q_2;
+                const double tmp_q_63 = jac_affine_inv_1_2*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((jac_affine_inv_0_0*jac_affine_inv_0_0)*tmp_q_27 + (jac_affine_inv_0_1*jac_affine_inv_0_1)*tmp_q_27 + (jac_affine_inv_0_2*jac_affine_inv_0_2)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((jac_affine_inv_1_0*jac_affine_inv_1_0)*tmp_q_28 + (jac_affine_inv_1_1*jac_affine_inv_1_1)*tmp_q_28 + (jac_affine_inv_1_2*jac_affine_inv_1_2)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((jac_affine_inv_2_0*jac_affine_inv_2_0)*tmp_q_29 + (jac_affine_inv_2_1*jac_affine_inv_2_1)*tmp_q_29 + (jac_affine_inv_2_2*jac_affine_inv_2_2)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((jac_affine_inv_2_0*tmp_q_66 - tmp_q_30 - tmp_q_42)*(jac_affine_inv_2_0*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (jac_affine_inv_2_1*tmp_q_66 - tmp_q_34 - tmp_q_46)*(jac_affine_inv_2_1*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (jac_affine_inv_2_2*tmp_q_66 - tmp_q_38 - tmp_q_50)*(jac_affine_inv_2_2*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((jac_affine_inv_1_0*tmp_q_68 - tmp_q_31 - tmp_q_54)*(jac_affine_inv_1_0*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (jac_affine_inv_1_1*tmp_q_68 - tmp_q_35 - tmp_q_58)*(jac_affine_inv_1_1*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (jac_affine_inv_1_2*tmp_q_68 - tmp_q_39 - tmp_q_62)*(jac_affine_inv_1_2*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((jac_affine_inv_0_0*tmp_q_69 - tmp_q_43 - tmp_q_55)*(jac_affine_inv_0_0*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (jac_affine_inv_0_1*tmp_q_69 - tmp_q_47 - tmp_q_59)*(jac_affine_inv_0_1*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (jac_affine_inv_0_2*tmp_q_69 - tmp_q_51 - tmp_q_63)*(jac_affine_inv_0_2*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -629,69 +395,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -700,281 +421,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4770*tmp_q_4;
-                const double tmp_q_6 = Dummy_4773*tmp_q_4;
-                const double tmp_q_7 = Dummy_4776*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4771*tmp_q_4;
-                const double tmp_q_21 = Dummy_4774*tmp_q_4;
-                const double tmp_q_22 = Dummy_4777*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4772*tmp_q_4;
-                const double tmp_q_25 = Dummy_4775*tmp_q_4;
-                const double tmp_q_26 = Dummy_4778*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4779*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4770*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4771*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4772*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4773*tmp_q_36;
-                const double tmp_q_38 = Dummy_4774*tmp_q_36;
-                const double tmp_q_39 = Dummy_4775*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4776*tmp_q_40;
-                const double tmp_q_42 = Dummy_4777*tmp_q_40;
-                const double tmp_q_43 = Dummy_4778*tmp_q_40;
-                const double tmp_q_44 = Dummy_4773*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4776*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4774*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4777*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4775*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4778*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4770*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4776*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4771*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4777*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4772*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4778*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4770*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4773*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4771*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4774*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4772*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4775*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4776*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4777*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4778*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4773*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4774*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4775*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4770*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4771*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4772*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4776*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4777*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4778*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4773*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4774*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4775*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4770*Dummy_4770)*tmp_q_103 + (Dummy_4771*Dummy_4771)*tmp_q_103 + (Dummy_4772*Dummy_4772)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4773*Dummy_4773)*tmp_q_107 + (Dummy_4774*Dummy_4774)*tmp_q_107 + (Dummy_4775*Dummy_4775)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4776*Dummy_4776)*tmp_q_108 + (Dummy_4777*Dummy_4777)*tmp_q_108 + (Dummy_4778*Dummy_4778)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4771*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4772*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4770*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_5 = Dummy_4753*tmp_q_4;
+                const double tmp_q_6 = Dummy_4756*tmp_q_4;
+                const double tmp_q_7 = Dummy_4759*tmp_q_4;
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = Dummy_4754*tmp_q_4;
+                const double tmp_q_20 = Dummy_4757*tmp_q_4;
+                const double tmp_q_21 = Dummy_4760*tmp_q_4;
+                const double tmp_q_22 = Dummy_4755*tmp_q_4;
+                const double tmp_q_23 = Dummy_4758*tmp_q_4;
+                const double tmp_q_24 = Dummy_4761*tmp_q_4;
+                const double tmp_q_25 = Dummy_4762*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = Dummy_4756*tmp_q_0;
+                const double tmp_q_31 = Dummy_4759*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = Dummy_4757*tmp_q_0;
+                const double tmp_q_35 = Dummy_4760*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = Dummy_4758*tmp_q_0;
+                const double tmp_q_39 = Dummy_4761*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = Dummy_4753*tmp_q_0;
+                const double tmp_q_43 = Dummy_4759*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = Dummy_4754*tmp_q_0;
+                const double tmp_q_47 = Dummy_4760*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = Dummy_4755*tmp_q_0;
+                const double tmp_q_51 = Dummy_4761*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = Dummy_4753*tmp_q_2;
+                const double tmp_q_55 = Dummy_4756*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = Dummy_4754*tmp_q_2;
+                const double tmp_q_59 = Dummy_4757*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = Dummy_4755*tmp_q_2;
+                const double tmp_q_63 = Dummy_4758*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((Dummy_4753*Dummy_4753)*tmp_q_27 + (Dummy_4754*Dummy_4754)*tmp_q_27 + (Dummy_4755*Dummy_4755)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((Dummy_4756*Dummy_4756)*tmp_q_28 + (Dummy_4757*Dummy_4757)*tmp_q_28 + (Dummy_4758*Dummy_4758)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((Dummy_4759*Dummy_4759)*tmp_q_29 + (Dummy_4760*Dummy_4760)*tmp_q_29 + (Dummy_4761*Dummy_4761)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((Dummy_4759*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4759*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4760*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4760*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4761*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4761*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((Dummy_4756*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4756*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4757*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4757*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4758*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4758*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((Dummy_4753*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4753*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4754*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4754*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4755*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4755*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -1001,69 +533,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -1072,281 +559,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4801*tmp_q_4;
-                const double tmp_q_6 = Dummy_4804*tmp_q_4;
-                const double tmp_q_7 = Dummy_4807*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4802*tmp_q_4;
-                const double tmp_q_21 = Dummy_4805*tmp_q_4;
-                const double tmp_q_22 = Dummy_4808*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4803*tmp_q_4;
-                const double tmp_q_25 = Dummy_4806*tmp_q_4;
-                const double tmp_q_26 = Dummy_4809*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4810*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4801*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4802*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4803*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4804*tmp_q_36;
-                const double tmp_q_38 = Dummy_4805*tmp_q_36;
-                const double tmp_q_39 = Dummy_4806*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4807*tmp_q_40;
-                const double tmp_q_42 = Dummy_4808*tmp_q_40;
-                const double tmp_q_43 = Dummy_4809*tmp_q_40;
-                const double tmp_q_44 = Dummy_4804*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4807*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4805*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4808*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4806*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4809*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4801*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4807*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4802*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4808*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4803*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4809*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4801*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4804*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4802*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4805*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4803*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4806*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4807*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4808*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4809*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4804*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4805*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4806*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4801*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4802*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4803*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4807*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4808*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4809*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4804*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4805*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4806*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4801*Dummy_4801)*tmp_q_103 + (Dummy_4802*Dummy_4802)*tmp_q_103 + (Dummy_4803*Dummy_4803)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4804*Dummy_4804)*tmp_q_107 + (Dummy_4805*Dummy_4805)*tmp_q_107 + (Dummy_4806*Dummy_4806)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4807*Dummy_4807)*tmp_q_108 + (Dummy_4808*Dummy_4808)*tmp_q_108 + (Dummy_4809*Dummy_4809)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4802*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4803*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4801*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_5 = Dummy_4784*tmp_q_4;
+                const double tmp_q_6 = Dummy_4787*tmp_q_4;
+                const double tmp_q_7 = Dummy_4790*tmp_q_4;
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = Dummy_4785*tmp_q_4;
+                const double tmp_q_20 = Dummy_4788*tmp_q_4;
+                const double tmp_q_21 = Dummy_4791*tmp_q_4;
+                const double tmp_q_22 = Dummy_4786*tmp_q_4;
+                const double tmp_q_23 = Dummy_4789*tmp_q_4;
+                const double tmp_q_24 = Dummy_4792*tmp_q_4;
+                const double tmp_q_25 = Dummy_4793*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = Dummy_4787*tmp_q_0;
+                const double tmp_q_31 = Dummy_4790*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = Dummy_4788*tmp_q_0;
+                const double tmp_q_35 = Dummy_4791*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = Dummy_4789*tmp_q_0;
+                const double tmp_q_39 = Dummy_4792*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = Dummy_4784*tmp_q_0;
+                const double tmp_q_43 = Dummy_4790*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = Dummy_4785*tmp_q_0;
+                const double tmp_q_47 = Dummy_4791*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = Dummy_4786*tmp_q_0;
+                const double tmp_q_51 = Dummy_4792*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = Dummy_4784*tmp_q_2;
+                const double tmp_q_55 = Dummy_4787*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = Dummy_4785*tmp_q_2;
+                const double tmp_q_59 = Dummy_4788*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = Dummy_4786*tmp_q_2;
+                const double tmp_q_63 = Dummy_4789*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((Dummy_4784*Dummy_4784)*tmp_q_27 + (Dummy_4785*Dummy_4785)*tmp_q_27 + (Dummy_4786*Dummy_4786)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((Dummy_4787*Dummy_4787)*tmp_q_28 + (Dummy_4788*Dummy_4788)*tmp_q_28 + (Dummy_4789*Dummy_4789)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((Dummy_4790*Dummy_4790)*tmp_q_29 + (Dummy_4791*Dummy_4791)*tmp_q_29 + (Dummy_4792*Dummy_4792)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((Dummy_4790*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4790*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4791*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4791*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4792*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4792*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((Dummy_4787*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4787*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4788*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4788*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4789*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4789*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((Dummy_4784*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4784*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4785*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4785*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4786*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4786*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -1373,69 +671,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -1444,281 +697,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4832*tmp_q_4;
-                const double tmp_q_6 = Dummy_4835*tmp_q_4;
-                const double tmp_q_7 = Dummy_4838*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4833*tmp_q_4;
-                const double tmp_q_21 = Dummy_4836*tmp_q_4;
-                const double tmp_q_22 = Dummy_4839*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4834*tmp_q_4;
-                const double tmp_q_25 = Dummy_4837*tmp_q_4;
-                const double tmp_q_26 = Dummy_4840*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4841*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4832*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4833*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4834*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4835*tmp_q_36;
-                const double tmp_q_38 = Dummy_4836*tmp_q_36;
-                const double tmp_q_39 = Dummy_4837*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4838*tmp_q_40;
-                const double tmp_q_42 = Dummy_4839*tmp_q_40;
-                const double tmp_q_43 = Dummy_4840*tmp_q_40;
-                const double tmp_q_44 = Dummy_4835*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4838*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4836*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4839*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4837*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4840*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4832*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4838*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4833*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4839*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4834*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4840*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4832*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4835*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4833*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4836*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4834*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4837*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4838*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4839*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4840*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4835*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4836*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4837*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4832*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4833*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4834*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4838*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4839*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4840*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4835*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4836*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4837*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4832*Dummy_4832)*tmp_q_103 + (Dummy_4833*Dummy_4833)*tmp_q_103 + (Dummy_4834*Dummy_4834)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4835*Dummy_4835)*tmp_q_107 + (Dummy_4836*Dummy_4836)*tmp_q_107 + (Dummy_4837*Dummy_4837)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4838*Dummy_4838)*tmp_q_108 + (Dummy_4839*Dummy_4839)*tmp_q_108 + (Dummy_4840*Dummy_4840)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4833*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4834*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4832*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_5 = Dummy_4815*tmp_q_4;
+                const double tmp_q_6 = Dummy_4818*tmp_q_4;
+                const double tmp_q_7 = Dummy_4821*tmp_q_4;
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = Dummy_4816*tmp_q_4;
+                const double tmp_q_20 = Dummy_4819*tmp_q_4;
+                const double tmp_q_21 = Dummy_4822*tmp_q_4;
+                const double tmp_q_22 = Dummy_4817*tmp_q_4;
+                const double tmp_q_23 = Dummy_4820*tmp_q_4;
+                const double tmp_q_24 = Dummy_4823*tmp_q_4;
+                const double tmp_q_25 = Dummy_4824*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = Dummy_4818*tmp_q_0;
+                const double tmp_q_31 = Dummy_4821*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = Dummy_4819*tmp_q_0;
+                const double tmp_q_35 = Dummy_4822*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = Dummy_4820*tmp_q_0;
+                const double tmp_q_39 = Dummy_4823*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = Dummy_4815*tmp_q_0;
+                const double tmp_q_43 = Dummy_4821*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = Dummy_4816*tmp_q_0;
+                const double tmp_q_47 = Dummy_4822*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = Dummy_4817*tmp_q_0;
+                const double tmp_q_51 = Dummy_4823*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = Dummy_4815*tmp_q_2;
+                const double tmp_q_55 = Dummy_4818*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = Dummy_4816*tmp_q_2;
+                const double tmp_q_59 = Dummy_4819*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = Dummy_4817*tmp_q_2;
+                const double tmp_q_63 = Dummy_4820*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((Dummy_4815*Dummy_4815)*tmp_q_27 + (Dummy_4816*Dummy_4816)*tmp_q_27 + (Dummy_4817*Dummy_4817)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((Dummy_4818*Dummy_4818)*tmp_q_28 + (Dummy_4819*Dummy_4819)*tmp_q_28 + (Dummy_4820*Dummy_4820)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((Dummy_4821*Dummy_4821)*tmp_q_29 + (Dummy_4822*Dummy_4822)*tmp_q_29 + (Dummy_4823*Dummy_4823)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((Dummy_4821*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4821*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4822*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4822*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4823*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4823*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((Dummy_4818*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4818*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4819*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4819*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4820*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4820*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((Dummy_4815*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4815*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4816*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4816*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4817*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4817*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -1745,69 +809,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -1816,281 +835,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4863*tmp_q_4;
-                const double tmp_q_6 = Dummy_4866*tmp_q_4;
-                const double tmp_q_7 = Dummy_4869*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4864*tmp_q_4;
-                const double tmp_q_21 = Dummy_4867*tmp_q_4;
-                const double tmp_q_22 = Dummy_4870*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4865*tmp_q_4;
-                const double tmp_q_25 = Dummy_4868*tmp_q_4;
-                const double tmp_q_26 = Dummy_4871*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4872*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4863*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4864*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4865*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4866*tmp_q_36;
-                const double tmp_q_38 = Dummy_4867*tmp_q_36;
-                const double tmp_q_39 = Dummy_4868*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4869*tmp_q_40;
-                const double tmp_q_42 = Dummy_4870*tmp_q_40;
-                const double tmp_q_43 = Dummy_4871*tmp_q_40;
-                const double tmp_q_44 = Dummy_4866*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4869*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4867*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4870*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4868*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4871*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4863*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4869*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4864*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4870*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4865*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4871*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4863*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4866*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4864*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4867*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4865*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4868*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4869*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4870*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4871*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4866*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4867*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4868*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4863*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4864*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4865*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4869*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4870*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4871*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4866*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4867*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4868*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4863*Dummy_4863)*tmp_q_103 + (Dummy_4864*Dummy_4864)*tmp_q_103 + (Dummy_4865*Dummy_4865)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4866*Dummy_4866)*tmp_q_107 + (Dummy_4867*Dummy_4867)*tmp_q_107 + (Dummy_4868*Dummy_4868)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4869*Dummy_4869)*tmp_q_108 + (Dummy_4870*Dummy_4870)*tmp_q_108 + (Dummy_4871*Dummy_4871)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4864*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4865*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4863*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_5 = Dummy_4846*tmp_q_4;
+                const double tmp_q_6 = Dummy_4849*tmp_q_4;
+                const double tmp_q_7 = Dummy_4852*tmp_q_4;
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = Dummy_4847*tmp_q_4;
+                const double tmp_q_20 = Dummy_4850*tmp_q_4;
+                const double tmp_q_21 = Dummy_4853*tmp_q_4;
+                const double tmp_q_22 = Dummy_4848*tmp_q_4;
+                const double tmp_q_23 = Dummy_4851*tmp_q_4;
+                const double tmp_q_24 = Dummy_4854*tmp_q_4;
+                const double tmp_q_25 = Dummy_4855*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = Dummy_4849*tmp_q_0;
+                const double tmp_q_31 = Dummy_4852*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = Dummy_4850*tmp_q_0;
+                const double tmp_q_35 = Dummy_4853*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = Dummy_4851*tmp_q_0;
+                const double tmp_q_39 = Dummy_4854*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = Dummy_4846*tmp_q_0;
+                const double tmp_q_43 = Dummy_4852*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = Dummy_4847*tmp_q_0;
+                const double tmp_q_47 = Dummy_4853*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = Dummy_4848*tmp_q_0;
+                const double tmp_q_51 = Dummy_4854*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = Dummy_4846*tmp_q_2;
+                const double tmp_q_55 = Dummy_4849*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = Dummy_4847*tmp_q_2;
+                const double tmp_q_59 = Dummy_4850*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = Dummy_4848*tmp_q_2;
+                const double tmp_q_63 = Dummy_4851*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((Dummy_4846*Dummy_4846)*tmp_q_27 + (Dummy_4847*Dummy_4847)*tmp_q_27 + (Dummy_4848*Dummy_4848)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((Dummy_4849*Dummy_4849)*tmp_q_28 + (Dummy_4850*Dummy_4850)*tmp_q_28 + (Dummy_4851*Dummy_4851)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((Dummy_4852*Dummy_4852)*tmp_q_29 + (Dummy_4853*Dummy_4853)*tmp_q_29 + (Dummy_4854*Dummy_4854)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((Dummy_4852*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4852*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4853*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4853*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4854*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4854*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((Dummy_4849*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4849*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4850*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4850*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4851*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4851*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((Dummy_4846*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4846*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4847*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4847*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4848*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4848*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
@@ -2117,69 +947,24 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
-             double q_acc_0_1 = 0.0;
-             double q_acc_0_2 = 0.0;
-             double q_acc_0_3 = 0.0;
-             double q_acc_0_4 = 0.0;
-             double q_acc_0_5 = 0.0;
-             double q_acc_0_6 = 0.0;
-             double q_acc_0_7 = 0.0;
-             double q_acc_0_8 = 0.0;
-             double q_acc_0_9 = 0.0;
              double q_acc_1_1 = 0.0;
-             double q_acc_1_2 = 0.0;
-             double q_acc_1_3 = 0.0;
-             double q_acc_1_4 = 0.0;
-             double q_acc_1_5 = 0.0;
-             double q_acc_1_6 = 0.0;
-             double q_acc_1_7 = 0.0;
-             double q_acc_1_8 = 0.0;
-             double q_acc_1_9 = 0.0;
              double q_acc_2_2 = 0.0;
-             double q_acc_2_3 = 0.0;
-             double q_acc_2_4 = 0.0;
-             double q_acc_2_5 = 0.0;
-             double q_acc_2_6 = 0.0;
-             double q_acc_2_7 = 0.0;
-             double q_acc_2_8 = 0.0;
-             double q_acc_2_9 = 0.0;
              double q_acc_3_3 = 0.0;
-             double q_acc_3_4 = 0.0;
-             double q_acc_3_5 = 0.0;
-             double q_acc_3_6 = 0.0;
-             double q_acc_3_7 = 0.0;
-             double q_acc_3_8 = 0.0;
-             double q_acc_3_9 = 0.0;
              double q_acc_4_4 = 0.0;
-             double q_acc_4_5 = 0.0;
-             double q_acc_4_6 = 0.0;
-             double q_acc_4_7 = 0.0;
-             double q_acc_4_8 = 0.0;
-             double q_acc_4_9 = 0.0;
              double q_acc_5_5 = 0.0;
-             double q_acc_5_6 = 0.0;
-             double q_acc_5_7 = 0.0;
-             double q_acc_5_8 = 0.0;
-             double q_acc_5_9 = 0.0;
              double q_acc_6_6 = 0.0;
-             double q_acc_6_7 = 0.0;
-             double q_acc_6_8 = 0.0;
-             double q_acc_6_9 = 0.0;
              double q_acc_7_7 = 0.0;
-             double q_acc_7_8 = 0.0;
-             double q_acc_7_9 = 0.0;
              double q_acc_8_8 = 0.0;
-             double q_acc_8_9 = 0.0;
              double q_acc_9_9 = 0.0;
              for (int64_t q = 0; q < 4; q += 1)
              {
@@ -2188,281 +973,92 @@ void P2ElementwiseDivKGrad::computeInverseDiagonalOperatorValues_macro_3D( doubl
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4894*tmp_q_4;
-                const double tmp_q_6 = Dummy_4897*tmp_q_4;
-                const double tmp_q_7 = Dummy_4900*tmp_q_4;
-                const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
-                const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
-                const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
-                const double tmp_q_11 = tmp_q_1*_data_q_p_1[q];
-                const double tmp_q_12 = (_data_q_p_0[q]*_data_q_p_0[q]);
-                const double tmp_q_13 = tmp_q_12*2.0;
-                const double tmp_q_14 = (_data_q_p_1[q]*_data_q_p_1[q]);
-                const double tmp_q_15 = tmp_q_14*2.0;
-                const double tmp_q_16 = (_data_q_p_2[q]*_data_q_p_2[q]);
-                const double tmp_q_17 = tmp_q_16*2.0;
-                const double tmp_q_18 = tmp_q_10 + tmp_q_11;
-                const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4895*tmp_q_4;
-                const double tmp_q_21 = Dummy_4898*tmp_q_4;
-                const double tmp_q_22 = Dummy_4901*tmp_q_4;
-                const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4896*tmp_q_4;
-                const double tmp_q_25 = Dummy_4899*tmp_q_4;
-                const double tmp_q_26 = Dummy_4902*tmp_q_4;
-                const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4903*_data_q_w[q];
-                const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4894*tmp_q_29;
-                const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4895*tmp_q_29;
-                const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4896*tmp_q_29;
-                const double tmp_q_35 = tmp_q_19*tmp_q_27;
-                const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4897*tmp_q_36;
-                const double tmp_q_38 = Dummy_4898*tmp_q_36;
-                const double tmp_q_39 = Dummy_4899*tmp_q_36;
-                const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4900*tmp_q_40;
-                const double tmp_q_42 = Dummy_4901*tmp_q_40;
-                const double tmp_q_43 = Dummy_4902*tmp_q_40;
-                const double tmp_q_44 = Dummy_4897*tmp_q_0;
-                const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4900*tmp_q_2;
-                const double tmp_q_47 = tmp_q_19*tmp_q_46;
-                const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4898*tmp_q_0;
-                const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4901*tmp_q_2;
-                const double tmp_q_52 = tmp_q_19*tmp_q_51;
-                const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4899*tmp_q_0;
-                const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4902*tmp_q_2;
-                const double tmp_q_57 = tmp_q_19*tmp_q_56;
-                const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4894*tmp_q_0;
-                const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4900*tmp_q_1;
-                const double tmp_q_62 = tmp_q_19*tmp_q_61;
-                const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4895*tmp_q_0;
-                const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4901*tmp_q_1;
-                const double tmp_q_67 = tmp_q_19*tmp_q_66;
-                const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4896*tmp_q_0;
-                const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4902*tmp_q_1;
-                const double tmp_q_72 = tmp_q_19*tmp_q_71;
-                const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4894*tmp_q_2;
-                const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4897*tmp_q_1;
-                const double tmp_q_77 = tmp_q_19*tmp_q_76;
-                const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4895*tmp_q_2;
-                const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4898*tmp_q_1;
-                const double tmp_q_82 = tmp_q_19*tmp_q_81;
-                const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4896*tmp_q_2;
-                const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4899*tmp_q_1;
-                const double tmp_q_87 = tmp_q_19*tmp_q_86;
-                const double tmp_q_88 = tmp_q_85 + tmp_q_87;
-                const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4900*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4901*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4902*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
-                const double tmp_q_93 = tmp_q_0 - 4.0;
-                const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4897*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4898*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4899*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
-                const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4894*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4895*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4896*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
-                const double tmp_q_102 = tmp_q_19*16.0;
-                const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
-                const double tmp_q_104 = tmp_q_19*tmp_q_30;
-                const double tmp_q_105 = tmp_q_19*tmp_q_32;
-                const double tmp_q_106 = tmp_q_19*tmp_q_34;
-                const double tmp_q_107 = tmp_q_102*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
-                const double tmp_q_108 = tmp_q_102*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
-                const double tmp_q_109 = tmp_q_44 + tmp_q_46;
-                const double tmp_q_110 = tmp_q_49 + tmp_q_51;
-                const double tmp_q_111 = tmp_q_54 + tmp_q_56;
-                const double tmp_q_112 = tmp_q_59 + tmp_q_61;
-                const double tmp_q_113 = tmp_q_64 + tmp_q_66;
-                const double tmp_q_114 = tmp_q_69 + tmp_q_71;
-                const double tmp_q_115 = tmp_q_74 + tmp_q_76;
-                const double tmp_q_116 = tmp_q_79 + tmp_q_81;
-                const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4900*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4901*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4902*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4897*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4898*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4899*tmp_q_94 - tmp_q_56 - tmp_q_84;
-                const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
-                const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
-                const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
-                const double res_tmp_0_3 = tmp_q_28*(tmp_q_31*tmp_q_41 + tmp_q_33*tmp_q_42 + tmp_q_35*tmp_q_43);
-                const double res_tmp_0_4 = tmp_q_28*(tmp_q_23*tmp_q_53 + tmp_q_27*tmp_q_58 + tmp_q_48*tmp_q_8);
-                const double res_tmp_0_5 = tmp_q_28*(tmp_q_23*tmp_q_68 + tmp_q_27*tmp_q_73 + tmp_q_63*tmp_q_8);
-                const double res_tmp_0_6 = tmp_q_28*(tmp_q_23*tmp_q_83 + tmp_q_27*tmp_q_88 + tmp_q_78*tmp_q_8);
-                const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
-                const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
-                const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4894*Dummy_4894)*tmp_q_103 + (Dummy_4895*Dummy_4895)*tmp_q_103 + (Dummy_4896*Dummy_4896)*tmp_q_103);
-                const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
-                const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
-                const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
-                const double res_tmp_1_5 = tmp_q_28*(tmp_q_30*tmp_q_63 + tmp_q_32*tmp_q_68 + tmp_q_34*tmp_q_73);
-                const double res_tmp_1_6 = tmp_q_28*(tmp_q_30*tmp_q_78 + tmp_q_32*tmp_q_83 + tmp_q_34*tmp_q_88);
-                const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
-                const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
-                const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4897*Dummy_4897)*tmp_q_107 + (Dummy_4898*Dummy_4898)*tmp_q_107 + (Dummy_4899*Dummy_4899)*tmp_q_107);
-                const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
-                const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
-                const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
-                const double res_tmp_2_6 = tmp_q_28*(tmp_q_37*tmp_q_78 + tmp_q_38*tmp_q_83 + tmp_q_39*tmp_q_88);
-                const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
-                const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
-                const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4900*Dummy_4900)*tmp_q_108 + (Dummy_4901*Dummy_4901)*tmp_q_108 + (Dummy_4902*Dummy_4902)*tmp_q_108);
-                const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
-                const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
-                const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
-                const double res_tmp_3_7 = tmp_q_28*(tmp_q_41*tmp_q_90 + tmp_q_42*tmp_q_91 + tmp_q_43*tmp_q_92);
-                const double res_tmp_3_8 = tmp_q_28*(tmp_q_41*tmp_q_95 + tmp_q_42*tmp_q_96 + tmp_q_43*tmp_q_97);
-                const double res_tmp_3_9 = tmp_q_28*(tmp_q_100*tmp_q_42 + tmp_q_101*tmp_q_43 + tmp_q_41*tmp_q_99);
-                const double res_tmp_4_4 = tmp_q_28*(tmp_q_109*tmp_q_48 + tmp_q_110*tmp_q_53 + tmp_q_111*tmp_q_58);
-                const double res_tmp_4_5 = tmp_q_28*(tmp_q_109*tmp_q_63 + tmp_q_110*tmp_q_68 + tmp_q_111*tmp_q_73);
-                const double res_tmp_4_6 = tmp_q_28*(tmp_q_109*tmp_q_78 + tmp_q_110*tmp_q_83 + tmp_q_111*tmp_q_88);
-                const double res_tmp_4_7 = tmp_q_28*(tmp_q_109*tmp_q_90 + tmp_q_110*tmp_q_91 + tmp_q_111*tmp_q_92);
-                const double res_tmp_4_8 = tmp_q_28*(tmp_q_109*tmp_q_95 + tmp_q_110*tmp_q_96 + tmp_q_111*tmp_q_97);
-                const double res_tmp_4_9 = tmp_q_28*(tmp_q_100*tmp_q_110 + tmp_q_101*tmp_q_111 + tmp_q_109*tmp_q_99);
-                const double res_tmp_5_5 = tmp_q_28*(tmp_q_112*tmp_q_63 + tmp_q_113*tmp_q_68 + tmp_q_114*tmp_q_73);
-                const double res_tmp_5_6 = tmp_q_28*(tmp_q_112*tmp_q_78 + tmp_q_113*tmp_q_83 + tmp_q_114*tmp_q_88);
-                const double res_tmp_5_7 = tmp_q_28*(tmp_q_112*tmp_q_90 + tmp_q_113*tmp_q_91 + tmp_q_114*tmp_q_92);
-                const double res_tmp_5_8 = tmp_q_28*(tmp_q_112*tmp_q_95 + tmp_q_113*tmp_q_96 + tmp_q_114*tmp_q_97);
-                const double res_tmp_5_9 = tmp_q_28*(tmp_q_100*tmp_q_113 + tmp_q_101*tmp_q_114 + tmp_q_112*tmp_q_99);
-                const double res_tmp_6_6 = tmp_q_28*(tmp_q_115*tmp_q_78 + tmp_q_116*tmp_q_83 + tmp_q_117*tmp_q_88);
-                const double res_tmp_6_7 = tmp_q_28*(tmp_q_115*tmp_q_90 + tmp_q_116*tmp_q_91 + tmp_q_117*tmp_q_92);
-                const double res_tmp_6_8 = tmp_q_28*(tmp_q_115*tmp_q_95 + tmp_q_116*tmp_q_96 + tmp_q_117*tmp_q_97);
-                const double res_tmp_6_9 = tmp_q_28*(tmp_q_100*tmp_q_116 + tmp_q_101*tmp_q_117 + tmp_q_115*tmp_q_99);
-                const double res_tmp_7_7 = tmp_q_28*(tmp_q_118*tmp_q_90 + tmp_q_119*tmp_q_91 + tmp_q_120*tmp_q_92);
-                const double res_tmp_7_8 = tmp_q_28*(tmp_q_118*tmp_q_95 + tmp_q_119*tmp_q_96 + tmp_q_120*tmp_q_97);
-                const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
-                const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
-                const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4895*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4896*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4894*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double tmp_q_5 = Dummy_4877*tmp_q_4;
+                const double tmp_q_6 = Dummy_4880*tmp_q_4;
+                const double tmp_q_7 = Dummy_4883*tmp_q_4;
+                const double tmp_q_8 = tmp_q_2*_data_q_p_2[q];
+                const double tmp_q_9 = tmp_q_1*_data_q_p_2[q];
+                const double tmp_q_10 = tmp_q_1*_data_q_p_1[q];
+                const double tmp_q_11 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const double tmp_q_12 = tmp_q_11*2.0;
+                const double tmp_q_13 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const double tmp_q_14 = tmp_q_13*2.0;
+                const double tmp_q_15 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const double tmp_q_16 = tmp_q_15*2.0;
+                const double tmp_q_17 = tmp_q_10 + tmp_q_9;
+                const double tmp_q_18 = k_dof_0*(tmp_q_12 + tmp_q_14 + tmp_q_16 + tmp_q_17 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_12 - _data_q_p_0[q]) + k_dof_2*(tmp_q_14 - _data_q_p_1[q]) + k_dof_3*(tmp_q_16 - _data_q_p_2[q]) + k_dof_4*tmp_q_8 + k_dof_5*tmp_q_9 + k_dof_6*tmp_q_10 + k_dof_7*(tmp_q_0 + tmp_q_15*-4.0 - tmp_q_8 - tmp_q_9) + k_dof_8*(-tmp_q_10 + tmp_q_13*-4.0 + tmp_q_2 - tmp_q_8) + k_dof_9*(tmp_q_1 + tmp_q_11*-4.0 - tmp_q_17);
+                const double tmp_q_19 = Dummy_4878*tmp_q_4;
+                const double tmp_q_20 = Dummy_4881*tmp_q_4;
+                const double tmp_q_21 = Dummy_4884*tmp_q_4;
+                const double tmp_q_22 = Dummy_4879*tmp_q_4;
+                const double tmp_q_23 = Dummy_4882*tmp_q_4;
+                const double tmp_q_24 = Dummy_4885*tmp_q_4;
+                const double tmp_q_25 = Dummy_4886*_data_q_w[q];
+                const double tmp_q_26 = tmp_q_18*16.0;
+                const double tmp_q_27 = tmp_q_26*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
+                const double tmp_q_28 = tmp_q_26*((-0.25 + _data_q_p_1[q])*(-0.25 + _data_q_p_1[q]));
+                const double tmp_q_29 = tmp_q_26*((-0.25 + _data_q_p_2[q])*(-0.25 + _data_q_p_2[q]));
+                const double tmp_q_30 = Dummy_4880*tmp_q_0;
+                const double tmp_q_31 = Dummy_4883*tmp_q_2;
+                const double tmp_q_32 = tmp_q_18*tmp_q_30;
+                const double tmp_q_33 = tmp_q_18*tmp_q_31;
+                const double tmp_q_34 = Dummy_4881*tmp_q_0;
+                const double tmp_q_35 = Dummy_4884*tmp_q_2;
+                const double tmp_q_36 = tmp_q_18*tmp_q_34;
+                const double tmp_q_37 = tmp_q_18*tmp_q_35;
+                const double tmp_q_38 = Dummy_4882*tmp_q_0;
+                const double tmp_q_39 = Dummy_4885*tmp_q_2;
+                const double tmp_q_40 = tmp_q_18*tmp_q_38;
+                const double tmp_q_41 = tmp_q_18*tmp_q_39;
+                const double tmp_q_42 = Dummy_4877*tmp_q_0;
+                const double tmp_q_43 = Dummy_4883*tmp_q_1;
+                const double tmp_q_44 = tmp_q_18*tmp_q_42;
+                const double tmp_q_45 = tmp_q_18*tmp_q_43;
+                const double tmp_q_46 = Dummy_4878*tmp_q_0;
+                const double tmp_q_47 = Dummy_4884*tmp_q_1;
+                const double tmp_q_48 = tmp_q_18*tmp_q_46;
+                const double tmp_q_49 = tmp_q_18*tmp_q_47;
+                const double tmp_q_50 = Dummy_4879*tmp_q_0;
+                const double tmp_q_51 = Dummy_4885*tmp_q_1;
+                const double tmp_q_52 = tmp_q_18*tmp_q_50;
+                const double tmp_q_53 = tmp_q_18*tmp_q_51;
+                const double tmp_q_54 = Dummy_4877*tmp_q_2;
+                const double tmp_q_55 = Dummy_4880*tmp_q_1;
+                const double tmp_q_56 = tmp_q_18*tmp_q_54;
+                const double tmp_q_57 = tmp_q_18*tmp_q_55;
+                const double tmp_q_58 = Dummy_4878*tmp_q_2;
+                const double tmp_q_59 = Dummy_4881*tmp_q_1;
+                const double tmp_q_60 = tmp_q_18*tmp_q_58;
+                const double tmp_q_61 = tmp_q_18*tmp_q_59;
+                const double tmp_q_62 = Dummy_4879*tmp_q_2;
+                const double tmp_q_63 = Dummy_4882*tmp_q_1;
+                const double tmp_q_64 = tmp_q_18*tmp_q_62;
+                const double tmp_q_65 = tmp_q_18*tmp_q_63;
+                const double tmp_q_66 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
+                const double tmp_q_67 = tmp_q_0 - 4.0;
+                const double tmp_q_68 = -tmp_q_1 - tmp_q_67 - 8.0*_data_q_p_1[q];
+                const double tmp_q_69 = -tmp_q_2 - tmp_q_67 - 8.0*_data_q_p_0[q];
+                const double res_tmp_0_0 = tmp_q_25*((tmp_q_19 + tmp_q_20 + tmp_q_21)*(tmp_q_18*tmp_q_19 + tmp_q_18*tmp_q_20 + tmp_q_18*tmp_q_21) + (tmp_q_22 + tmp_q_23 + tmp_q_24)*(tmp_q_18*tmp_q_22 + tmp_q_18*tmp_q_23 + tmp_q_18*tmp_q_24) + (tmp_q_5 + tmp_q_6 + tmp_q_7)*(tmp_q_18*tmp_q_5 + tmp_q_18*tmp_q_6 + tmp_q_18*tmp_q_7));
+                const double res_tmp_1_1 = tmp_q_25*((Dummy_4877*Dummy_4877)*tmp_q_27 + (Dummy_4878*Dummy_4878)*tmp_q_27 + (Dummy_4879*Dummy_4879)*tmp_q_27);
+                const double res_tmp_2_2 = tmp_q_25*((Dummy_4880*Dummy_4880)*tmp_q_28 + (Dummy_4881*Dummy_4881)*tmp_q_28 + (Dummy_4882*Dummy_4882)*tmp_q_28);
+                const double res_tmp_3_3 = tmp_q_25*((Dummy_4883*Dummy_4883)*tmp_q_29 + (Dummy_4884*Dummy_4884)*tmp_q_29 + (Dummy_4885*Dummy_4885)*tmp_q_29);
+                const double res_tmp_4_4 = tmp_q_25*((tmp_q_30 + tmp_q_31)*(tmp_q_32 + tmp_q_33) + (tmp_q_34 + tmp_q_35)*(tmp_q_36 + tmp_q_37) + (tmp_q_38 + tmp_q_39)*(tmp_q_40 + tmp_q_41));
+                const double res_tmp_5_5 = tmp_q_25*((tmp_q_42 + tmp_q_43)*(tmp_q_44 + tmp_q_45) + (tmp_q_46 + tmp_q_47)*(tmp_q_48 + tmp_q_49) + (tmp_q_50 + tmp_q_51)*(tmp_q_52 + tmp_q_53));
+                const double res_tmp_6_6 = tmp_q_25*((tmp_q_54 + tmp_q_55)*(tmp_q_56 + tmp_q_57) + (tmp_q_58 + tmp_q_59)*(tmp_q_60 + tmp_q_61) + (tmp_q_62 + tmp_q_63)*(tmp_q_64 + tmp_q_65));
+                const double res_tmp_7_7 = tmp_q_25*((Dummy_4883*tmp_q_66 - tmp_q_30 - tmp_q_42)*(Dummy_4883*tmp_q_18*tmp_q_66 - tmp_q_32 - tmp_q_44) + (Dummy_4884*tmp_q_66 - tmp_q_34 - tmp_q_46)*(Dummy_4884*tmp_q_18*tmp_q_66 - tmp_q_36 - tmp_q_48) + (Dummy_4885*tmp_q_66 - tmp_q_38 - tmp_q_50)*(Dummy_4885*tmp_q_18*tmp_q_66 - tmp_q_40 - tmp_q_52));
+                const double res_tmp_8_8 = tmp_q_25*((Dummy_4880*tmp_q_68 - tmp_q_31 - tmp_q_54)*(Dummy_4880*tmp_q_18*tmp_q_68 - tmp_q_33 - tmp_q_56) + (Dummy_4881*tmp_q_68 - tmp_q_35 - tmp_q_58)*(Dummy_4881*tmp_q_18*tmp_q_68 - tmp_q_37 - tmp_q_60) + (Dummy_4882*tmp_q_68 - tmp_q_39 - tmp_q_62)*(Dummy_4882*tmp_q_18*tmp_q_68 - tmp_q_41 - tmp_q_64));
+                const double res_tmp_9_9 = tmp_q_25*((Dummy_4877*tmp_q_69 - tmp_q_43 - tmp_q_55)*(Dummy_4877*tmp_q_18*tmp_q_69 - tmp_q_45 - tmp_q_57) + (Dummy_4878*tmp_q_69 - tmp_q_47 - tmp_q_59)*(Dummy_4878*tmp_q_18*tmp_q_69 - tmp_q_49 - tmp_q_61) + (Dummy_4879*tmp_q_69 - tmp_q_51 - tmp_q_63)*(Dummy_4879*tmp_q_18*tmp_q_69 - tmp_q_53 - tmp_q_65));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
-                q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
-                q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
-                q_acc_0_3 = q_acc_0_3 + res_tmp_0_3;
-                q_acc_0_4 = q_acc_0_4 + res_tmp_0_4;
-                q_acc_0_5 = q_acc_0_5 + res_tmp_0_5;
-                q_acc_0_6 = q_acc_0_6 + res_tmp_0_6;
-                q_acc_0_7 = q_acc_0_7 + res_tmp_0_7;
-                q_acc_0_8 = q_acc_0_8 + res_tmp_0_8;
-                q_acc_0_9 = q_acc_0_9 + res_tmp_0_9;
                 q_acc_1_1 = q_acc_1_1 + res_tmp_1_1;
-                q_acc_1_2 = q_acc_1_2 + res_tmp_1_2;
-                q_acc_1_3 = q_acc_1_3 + res_tmp_1_3;
-                q_acc_1_4 = q_acc_1_4 + res_tmp_1_4;
-                q_acc_1_5 = q_acc_1_5 + res_tmp_1_5;
-                q_acc_1_6 = q_acc_1_6 + res_tmp_1_6;
-                q_acc_1_7 = q_acc_1_7 + res_tmp_1_7;
-                q_acc_1_8 = q_acc_1_8 + res_tmp_1_8;
-                q_acc_1_9 = q_acc_1_9 + res_tmp_1_9;
                 q_acc_2_2 = q_acc_2_2 + res_tmp_2_2;
-                q_acc_2_3 = q_acc_2_3 + res_tmp_2_3;
-                q_acc_2_4 = q_acc_2_4 + res_tmp_2_4;
-                q_acc_2_5 = q_acc_2_5 + res_tmp_2_5;
-                q_acc_2_6 = q_acc_2_6 + res_tmp_2_6;
-                q_acc_2_7 = q_acc_2_7 + res_tmp_2_7;
-                q_acc_2_8 = q_acc_2_8 + res_tmp_2_8;
-                q_acc_2_9 = q_acc_2_9 + res_tmp_2_9;
                 q_acc_3_3 = q_acc_3_3 + res_tmp_3_3;
-                q_acc_3_4 = q_acc_3_4 + res_tmp_3_4;
-                q_acc_3_5 = q_acc_3_5 + res_tmp_3_5;
-                q_acc_3_6 = q_acc_3_6 + res_tmp_3_6;
-                q_acc_3_7 = q_acc_3_7 + res_tmp_3_7;
-                q_acc_3_8 = q_acc_3_8 + res_tmp_3_8;
-                q_acc_3_9 = q_acc_3_9 + res_tmp_3_9;
                 q_acc_4_4 = q_acc_4_4 + res_tmp_4_4;
-                q_acc_4_5 = q_acc_4_5 + res_tmp_4_5;
-                q_acc_4_6 = q_acc_4_6 + res_tmp_4_6;
-                q_acc_4_7 = q_acc_4_7 + res_tmp_4_7;
-                q_acc_4_8 = q_acc_4_8 + res_tmp_4_8;
-                q_acc_4_9 = q_acc_4_9 + res_tmp_4_9;
                 q_acc_5_5 = q_acc_5_5 + res_tmp_5_5;
-                q_acc_5_6 = q_acc_5_6 + res_tmp_5_6;
-                q_acc_5_7 = q_acc_5_7 + res_tmp_5_7;
-                q_acc_5_8 = q_acc_5_8 + res_tmp_5_8;
-                q_acc_5_9 = q_acc_5_9 + res_tmp_5_9;
                 q_acc_6_6 = q_acc_6_6 + res_tmp_6_6;
-                q_acc_6_7 = q_acc_6_7 + res_tmp_6_7;
-                q_acc_6_8 = q_acc_6_8 + res_tmp_6_8;
-                q_acc_6_9 = q_acc_6_9 + res_tmp_6_9;
                 q_acc_7_7 = q_acc_7_7 + res_tmp_7_7;
-                q_acc_7_8 = q_acc_7_8 + res_tmp_7_8;
-                q_acc_7_9 = q_acc_7_9 + res_tmp_7_9;
                 q_acc_8_8 = q_acc_8_8 + res_tmp_8_8;
-                q_acc_8_9 = q_acc_8_9 + res_tmp_8_9;
                 q_acc_9_9 = q_acc_9_9 + res_tmp_9_9;
              }
-             double q_acc_1_0 = q_acc_0_1;
-             double q_acc_2_0 = q_acc_0_2;
-             double q_acc_2_1 = q_acc_1_2;
-             double q_acc_3_0 = q_acc_0_3;
-             double q_acc_3_1 = q_acc_1_3;
-             double q_acc_3_2 = q_acc_2_3;
-             double q_acc_4_0 = q_acc_0_4;
-             double q_acc_4_1 = q_acc_1_4;
-             double q_acc_4_2 = q_acc_2_4;
-             double q_acc_4_3 = q_acc_3_4;
-             double q_acc_5_0 = q_acc_0_5;
-             double q_acc_5_1 = q_acc_1_5;
-             double q_acc_5_2 = q_acc_2_5;
-             double q_acc_5_3 = q_acc_3_5;
-             double q_acc_5_4 = q_acc_4_5;
-             double q_acc_6_0 = q_acc_0_6;
-             double q_acc_6_1 = q_acc_1_6;
-             double q_acc_6_2 = q_acc_2_6;
-             double q_acc_6_3 = q_acc_3_6;
-             double q_acc_6_4 = q_acc_4_6;
-             double q_acc_6_5 = q_acc_5_6;
-             double q_acc_7_0 = q_acc_0_7;
-             double q_acc_7_1 = q_acc_1_7;
-             double q_acc_7_2 = q_acc_2_7;
-             double q_acc_7_3 = q_acc_3_7;
-             double q_acc_7_4 = q_acc_4_7;
-             double q_acc_7_5 = q_acc_5_7;
-             double q_acc_7_6 = q_acc_6_7;
-             double q_acc_8_0 = q_acc_0_8;
-             double q_acc_8_1 = q_acc_1_8;
-             double q_acc_8_2 = q_acc_2_8;
-             double q_acc_8_3 = q_acc_3_8;
-             double q_acc_8_4 = q_acc_4_8;
-             double q_acc_8_5 = q_acc_5_8;
-             double q_acc_8_6 = q_acc_6_8;
-             double q_acc_8_7 = q_acc_7_8;
-             double q_acc_9_0 = q_acc_0_9;
-             double q_acc_9_1 = q_acc_1_9;
-             double q_acc_9_2 = q_acc_2_9;
-             double q_acc_9_3 = q_acc_3_9;
-             double q_acc_9_4 = q_acc_4_9;
-             double q_acc_9_5 = q_acc_5_9;
-             double q_acc_9_6 = q_acc_6_9;
-             double q_acc_9_7 = q_acc_7_9;
-             double q_acc_9_8 = q_acc_8_9;
              const double elMatDiag_0 = q_acc_0_0;
              const double elMatDiag_1 = q_acc_1_1;
              const double elMatDiag_2 = q_acc_2_2;
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_2D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_2D.cpp
index db260ab915af1ffb93b4d8496d1049d21e63e401..aa3858ea7c0742bfc0a4549454d04728ca1dabc8 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_2D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_2D.cpp
@@ -54,14 +54,14 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge, int64_t * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, int64_t * RESTRICT  _data_srcEdge, int64_t * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float, int64_t micro_edges_per_macro_face ) const
+void P2ElementwiseDivKGrad::toMatrix_macro_2D( idx_t * RESTRICT  _data_dstEdge, idx_t * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, idx_t * RESTRICT  _data_srcEdge, idx_t * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.16666666666666674, 0.16666666666666674, 0.16666666666666674};
+       const double _data_q_w [] = {0.166666666666667, 0.166666666666667, 0.166666666666667};
    
-       const double _data_q_p_0 [] = {0.16666666666666674, 0.66666666666666674, 0.16666666666666663};
+       const double _data_q_p_0 [] = {0.166666666666667, 0.666666666666667, 0.166666666666667};
    
-       const double _data_q_p_1 [] = {0.16666666666666663, 0.16666666666666663, 0.66666666666666685};
+       const double _data_q_p_1 [] = {0.166666666666667, 0.166666666666667, 0.666666666666667};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -78,31 +78,31 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
        const double jac_affine_inv_1_0 = -jac_affine_1_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double jac_affine_inv_1_1 = jac_affine_0_0*1.0 / (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0);
-       const double Dummy_4322 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4323 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4324 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4325 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4326 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4327 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4328 = -Dummy_4322 + Dummy_4324;
-       const double Dummy_4329 = -Dummy_4322 + Dummy_4326;
-       const double Dummy_4330 = -Dummy_4323 + Dummy_4325;
-       const double Dummy_4331 = -Dummy_4323 + Dummy_4327;
-       const double Dummy_4332 = Dummy_4331*1.0 / (Dummy_4328*Dummy_4331 - Dummy_4329*Dummy_4330);
-       const double Dummy_4333 = -Dummy_4329*1.0 / (Dummy_4328*Dummy_4331 - Dummy_4329*Dummy_4330);
-       const double Dummy_4334 = -Dummy_4330*1.0 / (Dummy_4328*Dummy_4331 - Dummy_4329*Dummy_4330);
-       const double Dummy_4335 = Dummy_4328*1.0 / (Dummy_4328*Dummy_4331 - Dummy_4329*Dummy_4330);
-       const double Dummy_4336 = fabs(Dummy_4328*Dummy_4331 - Dummy_4329*Dummy_4330);
+       const double Dummy_4305 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4306 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4307 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4308 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4309 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4310 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4311 = -Dummy_4305 + Dummy_4307;
+       const double Dummy_4312 = -Dummy_4305 + Dummy_4309;
+       const double Dummy_4313 = -Dummy_4306 + Dummy_4308;
+       const double Dummy_4314 = -Dummy_4306 + Dummy_4310;
+       const double Dummy_4315 = Dummy_4314*1.0 / (Dummy_4311*Dummy_4314 - Dummy_4312*Dummy_4313);
+       const double Dummy_4316 = -Dummy_4312*1.0 / (Dummy_4311*Dummy_4314 - Dummy_4312*Dummy_4313);
+       const double Dummy_4317 = -Dummy_4313*1.0 / (Dummy_4311*Dummy_4314 - Dummy_4312*Dummy_4313);
+       const double Dummy_4318 = Dummy_4311*1.0 / (Dummy_4311*Dummy_4314 - Dummy_4312*Dummy_4313);
+       const double Dummy_4319 = fabs(Dummy_4311*Dummy_4314 - Dummy_4312*Dummy_4313);
        {
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
              const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_3 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -271,61 +271,61 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
              _data_rowIdx[2] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
-             _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
-             _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+             _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
              _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
              _data_colIdx[0] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
              _data_colIdx[1] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
              _data_colIdx[2] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
-             _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
-             _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+             _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
              _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
          
              /* Apply basis transformation */
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_1_0;
-             _data_mat[7] = elMat_1_1;
-             _data_mat[8] = elMat_1_2;
-             _data_mat[9] = elMat_1_3;
-             _data_mat[10] = elMat_1_4;
-             _data_mat[11] = elMat_1_5;
-             _data_mat[12] = elMat_2_0;
-             _data_mat[13] = elMat_2_1;
-             _data_mat[14] = elMat_2_2;
-             _data_mat[15] = elMat_2_3;
-             _data_mat[16] = elMat_2_4;
-             _data_mat[17] = elMat_2_5;
-             _data_mat[18] = elMat_3_0;
-             _data_mat[19] = elMat_3_1;
-             _data_mat[20] = elMat_3_2;
-             _data_mat[21] = elMat_3_3;
-             _data_mat[22] = elMat_3_4;
-             _data_mat[23] = elMat_3_5;
-             _data_mat[24] = elMat_4_0;
-             _data_mat[25] = elMat_4_1;
-             _data_mat[26] = elMat_4_2;
-             _data_mat[27] = elMat_4_3;
-             _data_mat[28] = elMat_4_4;
-             _data_mat[29] = elMat_4_5;
-             _data_mat[30] = elMat_5_0;
-             _data_mat[31] = elMat_5_1;
-             _data_mat[32] = elMat_5_2;
-             _data_mat[33] = elMat_5_3;
-             _data_mat[34] = elMat_5_4;
-             _data_mat[35] = elMat_5_5;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_1_0));
+             _data_mat[7] = ((real_t)(elMat_1_1));
+             _data_mat[8] = ((real_t)(elMat_1_2));
+             _data_mat[9] = ((real_t)(elMat_1_3));
+             _data_mat[10] = ((real_t)(elMat_1_4));
+             _data_mat[11] = ((real_t)(elMat_1_5));
+             _data_mat[12] = ((real_t)(elMat_2_0));
+             _data_mat[13] = ((real_t)(elMat_2_1));
+             _data_mat[14] = ((real_t)(elMat_2_2));
+             _data_mat[15] = ((real_t)(elMat_2_3));
+             _data_mat[16] = ((real_t)(elMat_2_4));
+             _data_mat[17] = ((real_t)(elMat_2_5));
+             _data_mat[18] = ((real_t)(elMat_3_0));
+             _data_mat[19] = ((real_t)(elMat_3_1));
+             _data_mat[20] = ((real_t)(elMat_3_2));
+             _data_mat[21] = ((real_t)(elMat_3_3));
+             _data_mat[22] = ((real_t)(elMat_3_4));
+             _data_mat[23] = ((real_t)(elMat_3_5));
+             _data_mat[24] = ((real_t)(elMat_4_0));
+             _data_mat[25] = ((real_t)(elMat_4_1));
+             _data_mat[26] = ((real_t)(elMat_4_2));
+             _data_mat[27] = ((real_t)(elMat_4_3));
+             _data_mat[28] = ((real_t)(elMat_4_4));
+             _data_mat[29] = ((real_t)(elMat_4_5));
+             _data_mat[30] = ((real_t)(elMat_5_0));
+             _data_mat[31] = ((real_t)(elMat_5_1));
+             _data_mat[32] = ((real_t)(elMat_5_2));
+             _data_mat[33] = ((real_t)(elMat_5_3));
+             _data_mat[34] = ((real_t)(elMat_5_4));
+             _data_mat[35] = ((real_t)(elMat_5_5));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -333,12 +333,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
-             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
-             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const double k_dof_3 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -365,8 +365,8 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_0 = 4.0*_data_q_p_0[q];
                 const double tmp_q_1 = 4.0*_data_q_p_1[q];
                 const double tmp_q_2 = tmp_q_0 + tmp_q_1 - 3.0;
-                const double tmp_q_3 = Dummy_4332*tmp_q_2;
-                const double tmp_q_4 = Dummy_4334*tmp_q_2;
+                const double tmp_q_3 = Dummy_4315*tmp_q_2;
+                const double tmp_q_4 = Dummy_4317*tmp_q_2;
                 const double tmp_q_5 = tmp_q_3 + tmp_q_4;
                 const double tmp_q_6 = tmp_q_0*_data_q_p_1[q];
                 const double tmp_q_7 = (_data_q_p_0[q]*_data_q_p_0[q]);
@@ -374,54 +374,54 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_9 = (_data_q_p_1[q]*_data_q_p_1[q]);
                 const double tmp_q_10 = tmp_q_9*2.0;
                 const double tmp_q_11 = k_dof_0*(tmp_q_10 + tmp_q_6 + tmp_q_8 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0) + k_dof_1*(tmp_q_8 - _data_q_p_0[q]) + k_dof_2*(tmp_q_10 - _data_q_p_1[q]) + k_dof_3*tmp_q_6 + k_dof_4*(tmp_q_1 - tmp_q_6 + tmp_q_9*-4.0) + k_dof_5*(tmp_q_0 - tmp_q_6 + tmp_q_7*-4.0);
-                const double tmp_q_12 = Dummy_4333*tmp_q_2;
-                const double tmp_q_13 = Dummy_4335*tmp_q_2;
+                const double tmp_q_12 = Dummy_4316*tmp_q_2;
+                const double tmp_q_13 = Dummy_4318*tmp_q_2;
                 const double tmp_q_14 = tmp_q_12 + tmp_q_13;
-                const double tmp_q_15 = Dummy_4336*_data_q_w[q];
+                const double tmp_q_15 = Dummy_4319*_data_q_w[q];
                 const double tmp_q_16 = tmp_q_0 - 1.0;
-                const double tmp_q_17 = Dummy_4332*tmp_q_16;
+                const double tmp_q_17 = Dummy_4315*tmp_q_16;
                 const double tmp_q_18 = tmp_q_11*tmp_q_5;
-                const double tmp_q_19 = Dummy_4333*tmp_q_16;
+                const double tmp_q_19 = Dummy_4316*tmp_q_16;
                 const double tmp_q_20 = tmp_q_11*tmp_q_14;
                 const double tmp_q_21 = tmp_q_1 - 1.0;
-                const double tmp_q_22 = Dummy_4334*tmp_q_21;
-                const double tmp_q_23 = Dummy_4335*tmp_q_21;
-                const double tmp_q_24 = Dummy_4332*tmp_q_1;
+                const double tmp_q_22 = Dummy_4317*tmp_q_21;
+                const double tmp_q_23 = Dummy_4318*tmp_q_21;
+                const double tmp_q_24 = Dummy_4315*tmp_q_1;
                 const double tmp_q_25 = tmp_q_11*tmp_q_24;
-                const double tmp_q_26 = Dummy_4334*tmp_q_0;
+                const double tmp_q_26 = Dummy_4317*tmp_q_0;
                 const double tmp_q_27 = tmp_q_11*tmp_q_26;
                 const double tmp_q_28 = tmp_q_25 + tmp_q_27;
-                const double tmp_q_29 = Dummy_4333*tmp_q_1;
+                const double tmp_q_29 = Dummy_4316*tmp_q_1;
                 const double tmp_q_30 = tmp_q_11*tmp_q_29;
-                const double tmp_q_31 = Dummy_4335*tmp_q_0;
+                const double tmp_q_31 = Dummy_4318*tmp_q_0;
                 const double tmp_q_32 = tmp_q_11*tmp_q_31;
                 const double tmp_q_33 = tmp_q_30 + tmp_q_32;
                 const double tmp_q_34 = -tmp_q_0 - 8.0*_data_q_p_1[q] + 4.0;
-                const double tmp_q_35 = Dummy_4334*tmp_q_11*tmp_q_34 - tmp_q_25;
-                const double tmp_q_36 = Dummy_4335*tmp_q_11*tmp_q_34 - tmp_q_30;
+                const double tmp_q_35 = Dummy_4317*tmp_q_11*tmp_q_34 - tmp_q_25;
+                const double tmp_q_36 = Dummy_4318*tmp_q_11*tmp_q_34 - tmp_q_30;
                 const double tmp_q_37 = -tmp_q_1 - 8.0*_data_q_p_0[q] + 4.0;
-                const double tmp_q_38 = Dummy_4332*tmp_q_37;
+                const double tmp_q_38 = Dummy_4315*tmp_q_37;
                 const double tmp_q_39 = tmp_q_11*tmp_q_38 - tmp_q_27;
-                const double tmp_q_40 = Dummy_4333*tmp_q_37;
+                const double tmp_q_40 = Dummy_4316*tmp_q_37;
                 const double tmp_q_41 = tmp_q_11*tmp_q_40 - tmp_q_32;
                 const double tmp_q_42 = tmp_q_11*(tmp_q_16*tmp_q_16);
                 const double tmp_q_43 = tmp_q_11*(tmp_q_21*tmp_q_21);
                 const double tmp_q_44 = tmp_q_24 + tmp_q_26;
                 const double tmp_q_45 = tmp_q_29 + tmp_q_31;
-                const double tmp_q_46 = Dummy_4334*tmp_q_34 - tmp_q_24;
-                const double tmp_q_47 = Dummy_4335*tmp_q_34 - tmp_q_29;
+                const double tmp_q_46 = Dummy_4317*tmp_q_34 - tmp_q_24;
+                const double tmp_q_47 = Dummy_4318*tmp_q_34 - tmp_q_29;
                 const double res_tmp_0_0 = tmp_q_15*(tmp_q_14*(tmp_q_11*tmp_q_12 + tmp_q_11*tmp_q_13) + tmp_q_5*(tmp_q_11*tmp_q_3 + tmp_q_11*tmp_q_4));
                 const double res_tmp_0_1 = tmp_q_15*(tmp_q_17*tmp_q_18 + tmp_q_19*tmp_q_20);
                 const double res_tmp_0_2 = tmp_q_15*(tmp_q_18*tmp_q_22 + tmp_q_20*tmp_q_23);
                 const double res_tmp_0_3 = tmp_q_15*(tmp_q_14*tmp_q_33 + tmp_q_28*tmp_q_5);
                 const double res_tmp_0_4 = tmp_q_15*(tmp_q_14*tmp_q_36 + tmp_q_35*tmp_q_5);
                 const double res_tmp_0_5 = tmp_q_15*(tmp_q_14*tmp_q_41 + tmp_q_39*tmp_q_5);
-                const double res_tmp_1_1 = tmp_q_15*((Dummy_4332*Dummy_4332)*tmp_q_42 + (Dummy_4333*Dummy_4333)*tmp_q_42);
+                const double res_tmp_1_1 = tmp_q_15*((Dummy_4315*Dummy_4315)*tmp_q_42 + (Dummy_4316*Dummy_4316)*tmp_q_42);
                 const double res_tmp_1_2 = tmp_q_15*(tmp_q_11*tmp_q_17*tmp_q_22 + tmp_q_11*tmp_q_19*tmp_q_23);
                 const double res_tmp_1_3 = tmp_q_15*(tmp_q_17*tmp_q_28 + tmp_q_19*tmp_q_33);
                 const double res_tmp_1_4 = tmp_q_15*(tmp_q_17*tmp_q_35 + tmp_q_19*tmp_q_36);
                 const double res_tmp_1_5 = tmp_q_15*(tmp_q_17*tmp_q_39 + tmp_q_19*tmp_q_41);
-                const double res_tmp_2_2 = tmp_q_15*((Dummy_4334*Dummy_4334)*tmp_q_43 + (Dummy_4335*Dummy_4335)*tmp_q_43);
+                const double res_tmp_2_2 = tmp_q_15*((Dummy_4317*Dummy_4317)*tmp_q_43 + (Dummy_4318*Dummy_4318)*tmp_q_43);
                 const double res_tmp_2_3 = tmp_q_15*(tmp_q_22*tmp_q_28 + tmp_q_23*tmp_q_33);
                 const double res_tmp_2_4 = tmp_q_15*(tmp_q_22*tmp_q_35 + tmp_q_23*tmp_q_36);
                 const double res_tmp_2_5 = tmp_q_15*(tmp_q_22*tmp_q_39 + tmp_q_23*tmp_q_41);
@@ -507,61 +507,61 @@ void P2ElementwiseDivKGrad::toMatrix_macro_2D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 6 );
              std::vector< uint_t > _data_colIdx( 6 );
-             std::vector< double > _data_mat( 36 );
+             std::vector< real_t > _data_mat( 36 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
              _data_rowIdx[2] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
              _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
-             _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
-             _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]));
+             _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
              _data_colIdx[0] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
              _data_colIdx[1] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
              _data_colIdx[2] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
              _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
-             _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + 2*((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
-             _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) + ((micro_edges_per_macro_face) / (3)) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]));
+             _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
          
              /* Apply basis transformation */
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_1_0;
-             _data_mat[7] = elMat_1_1;
-             _data_mat[8] = elMat_1_2;
-             _data_mat[9] = elMat_1_3;
-             _data_mat[10] = elMat_1_4;
-             _data_mat[11] = elMat_1_5;
-             _data_mat[12] = elMat_2_0;
-             _data_mat[13] = elMat_2_1;
-             _data_mat[14] = elMat_2_2;
-             _data_mat[15] = elMat_2_3;
-             _data_mat[16] = elMat_2_4;
-             _data_mat[17] = elMat_2_5;
-             _data_mat[18] = elMat_3_0;
-             _data_mat[19] = elMat_3_1;
-             _data_mat[20] = elMat_3_2;
-             _data_mat[21] = elMat_3_3;
-             _data_mat[22] = elMat_3_4;
-             _data_mat[23] = elMat_3_5;
-             _data_mat[24] = elMat_4_0;
-             _data_mat[25] = elMat_4_1;
-             _data_mat[26] = elMat_4_2;
-             _data_mat[27] = elMat_4_3;
-             _data_mat[28] = elMat_4_4;
-             _data_mat[29] = elMat_4_5;
-             _data_mat[30] = elMat_5_0;
-             _data_mat[31] = elMat_5_1;
-             _data_mat[32] = elMat_5_2;
-             _data_mat[33] = elMat_5_3;
-             _data_mat[34] = elMat_5_4;
-             _data_mat[35] = elMat_5_5;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_1_0));
+             _data_mat[7] = ((real_t)(elMat_1_1));
+             _data_mat[8] = ((real_t)(elMat_1_2));
+             _data_mat[9] = ((real_t)(elMat_1_3));
+             _data_mat[10] = ((real_t)(elMat_1_4));
+             _data_mat[11] = ((real_t)(elMat_1_5));
+             _data_mat[12] = ((real_t)(elMat_2_0));
+             _data_mat[13] = ((real_t)(elMat_2_1));
+             _data_mat[14] = ((real_t)(elMat_2_2));
+             _data_mat[15] = ((real_t)(elMat_2_3));
+             _data_mat[16] = ((real_t)(elMat_2_4));
+             _data_mat[17] = ((real_t)(elMat_2_5));
+             _data_mat[18] = ((real_t)(elMat_3_0));
+             _data_mat[19] = ((real_t)(elMat_3_1));
+             _data_mat[20] = ((real_t)(elMat_3_2));
+             _data_mat[21] = ((real_t)(elMat_3_3));
+             _data_mat[22] = ((real_t)(elMat_3_4));
+             _data_mat[23] = ((real_t)(elMat_3_5));
+             _data_mat[24] = ((real_t)(elMat_4_0));
+             _data_mat[25] = ((real_t)(elMat_4_1));
+             _data_mat[26] = ((real_t)(elMat_4_2));
+             _data_mat[27] = ((real_t)(elMat_4_3));
+             _data_mat[28] = ((real_t)(elMat_4_4));
+             _data_mat[29] = ((real_t)(elMat_4_5));
+             _data_mat[30] = ((real_t)(elMat_5_0));
+             _data_mat[31] = ((real_t)(elMat_5_1));
+             _data_mat[32] = ((real_t)(elMat_5_2));
+             _data_mat[33] = ((real_t)(elMat_5_3));
+             _data_mat[34] = ((real_t)(elMat_5_4));
+             _data_mat[35] = ((real_t)(elMat_5_5));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
diff --git a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_3D.cpp b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_3D.cpp
index 396c868db15b779ed1b2deb115d955bb12ba4e5e..ceb31fbc85e0afea702acfc13ca55d9d64b0c478 100644
--- a/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_3D.cpp
+++ b/operators/div_k_grad/noarch/P2ElementwiseDivKGrad_toMatrix_macro_3D.cpp
@@ -54,16 +54,16 @@ namespace hyteg {
 
 namespace operatorgeneration {
 
-void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge, int64_t * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, int64_t * RESTRICT  _data_srcEdge, int64_t * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
+void P2ElementwiseDivKGrad::toMatrix_macro_3D( idx_t * RESTRICT  _data_dstEdge, idx_t * RESTRICT  _data_dstVertex, double * RESTRICT  _data_kEdge, double * RESTRICT  _data_kVertex, idx_t * RESTRICT  _data_srcEdge, idx_t * RESTRICT  _data_srcVertex, double macro_vertex_coord_id_0comp0, double macro_vertex_coord_id_0comp1, double macro_vertex_coord_id_0comp2, double macro_vertex_coord_id_1comp0, double macro_vertex_coord_id_1comp1, double macro_vertex_coord_id_1comp2, double macro_vertex_coord_id_2comp0, double macro_vertex_coord_id_2comp1, double macro_vertex_coord_id_2comp2, double macro_vertex_coord_id_3comp0, double macro_vertex_coord_id_3comp1, double macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, double micro_edges_per_macro_edge_float ) const
 {
     {
-       const double _data_q_w [] = {0.050086823222829389, 0.046462929447761279, 0.05318232258357912, 0.016934591412496786};
+       const double _data_q_w [] = {0.0500868232228294, 0.0464629294477613, 0.0531823225835791, 0.0169345914124968};
    
-       const double _data_q_p_0 [] = {0.18002969351036546, 0.15593312049918584, 0.21607642918484793, 0.82157254096761967};
+       const double _data_q_p_0 [] = {0.180029693510365, 0.155933120499186, 0.216076429184848, 0.821572540967620};
    
-       const double _data_q_p_1 [] = {0.36531451881463461, 0.45746158708559559, 0.00037551502872928966, 0.12366680032845823};
+       const double _data_q_p_1 [] = {0.365314518814635, 0.457461587085596, 0.000375515028729290, 0.123666800328458};
    
-       const double _data_q_p_2 [] = {0.0069232355736274509, 0.3817653560693467, 0.43070170707783589, 0.039933048641498381};
+       const double _data_q_p_2 [] = {0.00692323557362745, 0.381765356069347, 0.430701707077836, 0.0399330486414984};
    
        const double p_affine_0_0 = macro_vertex_coord_id_0comp0;
        const double p_affine_0_1 = macro_vertex_coord_id_0comp1;
@@ -96,176 +96,176 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
        const double jac_affine_inv_2_1 = (-jac_affine_0_0*jac_affine_2_1 + jac_affine_0_1*jac_affine_2_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double jac_affine_inv_2_2 = (jac_affine_0_0*jac_affine_1_1 - jac_affine_0_1*jac_affine_1_0)*1.0 / (jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
        const double abs_det_jac_affine = fabs(jac_affine_0_0*jac_affine_1_1*jac_affine_2_2 - jac_affine_0_0*jac_affine_1_2*jac_affine_2_1 - jac_affine_0_1*jac_affine_1_0*jac_affine_2_2 + jac_affine_0_1*jac_affine_1_2*jac_affine_2_0 + jac_affine_0_2*jac_affine_1_0*jac_affine_2_1 - jac_affine_0_2*jac_affine_1_1*jac_affine_2_0);
-       const double Dummy_4445 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4446 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4447 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4448 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4449 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4450 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4451 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4452 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4453 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4454 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4455 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4456 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4457 = -Dummy_4445 + Dummy_4448;
-       const double Dummy_4458 = -Dummy_4445 + Dummy_4451;
-       const double Dummy_4459 = -Dummy_4445 + Dummy_4454;
-       const double Dummy_4460 = -Dummy_4446 + Dummy_4449;
-       const double Dummy_4461 = -Dummy_4446 + Dummy_4452;
-       const double Dummy_4462 = -Dummy_4446 + Dummy_4455;
-       const double Dummy_4463 = -Dummy_4447 + Dummy_4450;
-       const double Dummy_4464 = -Dummy_4447 + Dummy_4453;
-       const double Dummy_4465 = -Dummy_4447 + Dummy_4456;
-       const double Dummy_4466 = (Dummy_4461*Dummy_4465 - Dummy_4462*Dummy_4464)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4467 = (-Dummy_4458*Dummy_4465 + Dummy_4459*Dummy_4464)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4468 = (Dummy_4458*Dummy_4462 - Dummy_4459*Dummy_4461)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4469 = (-Dummy_4460*Dummy_4465 + Dummy_4462*Dummy_4463)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4470 = (Dummy_4457*Dummy_4465 - Dummy_4459*Dummy_4463)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4471 = (-Dummy_4457*Dummy_4462 + Dummy_4459*Dummy_4460)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4472 = (Dummy_4460*Dummy_4464 - Dummy_4461*Dummy_4463)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4473 = (-Dummy_4457*Dummy_4464 + Dummy_4458*Dummy_4463)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4474 = (Dummy_4457*Dummy_4461 - Dummy_4458*Dummy_4460)*1.0 / (Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4475 = fabs(Dummy_4457*Dummy_4461*Dummy_4465 - Dummy_4457*Dummy_4462*Dummy_4464 - Dummy_4458*Dummy_4460*Dummy_4465 + Dummy_4458*Dummy_4462*Dummy_4463 + Dummy_4459*Dummy_4460*Dummy_4464 - Dummy_4459*Dummy_4461*Dummy_4463);
-       const double Dummy_4476 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4477 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4478 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4479 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4480 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4481 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4482 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4483 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4484 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4485 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4486 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4487 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4488 = -Dummy_4476 + Dummy_4479;
-       const double Dummy_4489 = -Dummy_4476 + Dummy_4482;
-       const double Dummy_4490 = -Dummy_4476 + Dummy_4485;
-       const double Dummy_4491 = -Dummy_4477 + Dummy_4480;
-       const double Dummy_4492 = -Dummy_4477 + Dummy_4483;
-       const double Dummy_4493 = -Dummy_4477 + Dummy_4486;
-       const double Dummy_4494 = -Dummy_4478 + Dummy_4481;
-       const double Dummy_4495 = -Dummy_4478 + Dummy_4484;
-       const double Dummy_4496 = -Dummy_4478 + Dummy_4487;
-       const double Dummy_4497 = (Dummy_4492*Dummy_4496 - Dummy_4493*Dummy_4495)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4498 = (-Dummy_4489*Dummy_4496 + Dummy_4490*Dummy_4495)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4499 = (Dummy_4489*Dummy_4493 - Dummy_4490*Dummy_4492)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4500 = (-Dummy_4491*Dummy_4496 + Dummy_4493*Dummy_4494)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4501 = (Dummy_4488*Dummy_4496 - Dummy_4490*Dummy_4494)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4502 = (-Dummy_4488*Dummy_4493 + Dummy_4490*Dummy_4491)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4503 = (Dummy_4491*Dummy_4495 - Dummy_4492*Dummy_4494)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4504 = (-Dummy_4488*Dummy_4495 + Dummy_4489*Dummy_4494)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4505 = (Dummy_4488*Dummy_4492 - Dummy_4489*Dummy_4491)*1.0 / (Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4506 = fabs(Dummy_4488*Dummy_4492*Dummy_4496 - Dummy_4488*Dummy_4493*Dummy_4495 - Dummy_4489*Dummy_4491*Dummy_4496 + Dummy_4489*Dummy_4493*Dummy_4494 + Dummy_4490*Dummy_4491*Dummy_4495 - Dummy_4490*Dummy_4492*Dummy_4494);
-       const double Dummy_4507 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4508 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4509 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4510 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4511 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4512 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4513 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4514 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4515 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4516 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4517 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4518 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4519 = -Dummy_4507 + Dummy_4510;
-       const double Dummy_4520 = -Dummy_4507 + Dummy_4513;
-       const double Dummy_4521 = -Dummy_4507 + Dummy_4516;
-       const double Dummy_4522 = -Dummy_4508 + Dummy_4511;
-       const double Dummy_4523 = -Dummy_4508 + Dummy_4514;
-       const double Dummy_4524 = -Dummy_4508 + Dummy_4517;
-       const double Dummy_4525 = -Dummy_4509 + Dummy_4512;
-       const double Dummy_4526 = -Dummy_4509 + Dummy_4515;
-       const double Dummy_4527 = -Dummy_4509 + Dummy_4518;
-       const double Dummy_4528 = (Dummy_4523*Dummy_4527 - Dummy_4524*Dummy_4526)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4529 = (-Dummy_4520*Dummy_4527 + Dummy_4521*Dummy_4526)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4530 = (Dummy_4520*Dummy_4524 - Dummy_4521*Dummy_4523)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4531 = (-Dummy_4522*Dummy_4527 + Dummy_4524*Dummy_4525)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4532 = (Dummy_4519*Dummy_4527 - Dummy_4521*Dummy_4525)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4533 = (-Dummy_4519*Dummy_4524 + Dummy_4521*Dummy_4522)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4534 = (Dummy_4522*Dummy_4526 - Dummy_4523*Dummy_4525)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4535 = (-Dummy_4519*Dummy_4526 + Dummy_4520*Dummy_4525)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4536 = (Dummy_4519*Dummy_4523 - Dummy_4520*Dummy_4522)*1.0 / (Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4537 = fabs(Dummy_4519*Dummy_4523*Dummy_4527 - Dummy_4519*Dummy_4524*Dummy_4526 - Dummy_4520*Dummy_4522*Dummy_4527 + Dummy_4520*Dummy_4524*Dummy_4525 + Dummy_4521*Dummy_4522*Dummy_4526 - Dummy_4521*Dummy_4523*Dummy_4525);
-       const double Dummy_4538 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
-       const double Dummy_4539 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
-       const double Dummy_4540 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
-       const double Dummy_4541 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4542 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4543 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4544 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4545 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4546 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4547 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4548 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4549 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4550 = -Dummy_4538 + Dummy_4541;
-       const double Dummy_4551 = -Dummy_4538 + Dummy_4544;
-       const double Dummy_4552 = -Dummy_4538 + Dummy_4547;
-       const double Dummy_4553 = -Dummy_4539 + Dummy_4542;
-       const double Dummy_4554 = -Dummy_4539 + Dummy_4545;
-       const double Dummy_4555 = -Dummy_4539 + Dummy_4548;
-       const double Dummy_4556 = -Dummy_4540 + Dummy_4543;
-       const double Dummy_4557 = -Dummy_4540 + Dummy_4546;
-       const double Dummy_4558 = -Dummy_4540 + Dummy_4549;
-       const double Dummy_4559 = (Dummy_4554*Dummy_4558 - Dummy_4555*Dummy_4557)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4560 = (-Dummy_4551*Dummy_4558 + Dummy_4552*Dummy_4557)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4561 = (Dummy_4551*Dummy_4555 - Dummy_4552*Dummy_4554)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4562 = (-Dummy_4553*Dummy_4558 + Dummy_4555*Dummy_4556)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4563 = (Dummy_4550*Dummy_4558 - Dummy_4552*Dummy_4556)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4564 = (-Dummy_4550*Dummy_4555 + Dummy_4552*Dummy_4553)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4565 = (Dummy_4553*Dummy_4557 - Dummy_4554*Dummy_4556)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4566 = (-Dummy_4550*Dummy_4557 + Dummy_4551*Dummy_4556)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4567 = (Dummy_4550*Dummy_4554 - Dummy_4551*Dummy_4553)*1.0 / (Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4568 = fabs(Dummy_4550*Dummy_4554*Dummy_4558 - Dummy_4550*Dummy_4555*Dummy_4557 - Dummy_4551*Dummy_4553*Dummy_4558 + Dummy_4551*Dummy_4555*Dummy_4556 + Dummy_4552*Dummy_4553*Dummy_4557 - Dummy_4552*Dummy_4554*Dummy_4556);
-       const double Dummy_4569 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4570 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4571 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4572 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
-       const double Dummy_4573 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
-       const double Dummy_4574 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
-       const double Dummy_4575 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4576 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4577 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4578 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
-       const double Dummy_4579 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
-       const double Dummy_4580 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
-       const double Dummy_4581 = -Dummy_4569 + Dummy_4572;
-       const double Dummy_4582 = -Dummy_4569 + Dummy_4575;
-       const double Dummy_4583 = -Dummy_4569 + Dummy_4578;
-       const double Dummy_4584 = -Dummy_4570 + Dummy_4573;
-       const double Dummy_4585 = -Dummy_4570 + Dummy_4576;
-       const double Dummy_4586 = -Dummy_4570 + Dummy_4579;
-       const double Dummy_4587 = -Dummy_4571 + Dummy_4574;
-       const double Dummy_4588 = -Dummy_4571 + Dummy_4577;
-       const double Dummy_4589 = -Dummy_4571 + Dummy_4580;
-       const double Dummy_4590 = (Dummy_4585*Dummy_4589 - Dummy_4586*Dummy_4588)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4591 = (-Dummy_4582*Dummy_4589 + Dummy_4583*Dummy_4588)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4592 = (Dummy_4582*Dummy_4586 - Dummy_4583*Dummy_4585)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4593 = (-Dummy_4584*Dummy_4589 + Dummy_4586*Dummy_4587)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4594 = (Dummy_4581*Dummy_4589 - Dummy_4583*Dummy_4587)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4595 = (-Dummy_4581*Dummy_4586 + Dummy_4583*Dummy_4584)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4596 = (Dummy_4584*Dummy_4588 - Dummy_4585*Dummy_4587)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4597 = (-Dummy_4581*Dummy_4588 + Dummy_4582*Dummy_4587)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4598 = (Dummy_4581*Dummy_4585 - Dummy_4582*Dummy_4584)*1.0 / (Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
-       const double Dummy_4599 = fabs(Dummy_4581*Dummy_4585*Dummy_4589 - Dummy_4581*Dummy_4586*Dummy_4588 - Dummy_4582*Dummy_4584*Dummy_4589 + Dummy_4582*Dummy_4586*Dummy_4587 + Dummy_4583*Dummy_4584*Dummy_4588 - Dummy_4583*Dummy_4585*Dummy_4587);
+       const double Dummy_4428 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4429 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4430 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4431 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4432 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4433 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4434 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4435 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4436 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4437 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4438 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4439 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4440 = -Dummy_4428 + Dummy_4431;
+       const double Dummy_4441 = -Dummy_4428 + Dummy_4434;
+       const double Dummy_4442 = -Dummy_4428 + Dummy_4437;
+       const double Dummy_4443 = -Dummy_4429 + Dummy_4432;
+       const double Dummy_4444 = -Dummy_4429 + Dummy_4435;
+       const double Dummy_4445 = -Dummy_4429 + Dummy_4438;
+       const double Dummy_4446 = -Dummy_4430 + Dummy_4433;
+       const double Dummy_4447 = -Dummy_4430 + Dummy_4436;
+       const double Dummy_4448 = -Dummy_4430 + Dummy_4439;
+       const double Dummy_4449 = (Dummy_4444*Dummy_4448 - Dummy_4445*Dummy_4447)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4450 = (-Dummy_4441*Dummy_4448 + Dummy_4442*Dummy_4447)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4451 = (Dummy_4441*Dummy_4445 - Dummy_4442*Dummy_4444)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4452 = (-Dummy_4443*Dummy_4448 + Dummy_4445*Dummy_4446)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4453 = (Dummy_4440*Dummy_4448 - Dummy_4442*Dummy_4446)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4454 = (-Dummy_4440*Dummy_4445 + Dummy_4442*Dummy_4443)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4455 = (Dummy_4443*Dummy_4447 - Dummy_4444*Dummy_4446)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4456 = (-Dummy_4440*Dummy_4447 + Dummy_4441*Dummy_4446)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4457 = (Dummy_4440*Dummy_4444 - Dummy_4441*Dummy_4443)*1.0 / (Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4458 = fabs(Dummy_4440*Dummy_4444*Dummy_4448 - Dummy_4440*Dummy_4445*Dummy_4447 - Dummy_4441*Dummy_4443*Dummy_4448 + Dummy_4441*Dummy_4445*Dummy_4446 + Dummy_4442*Dummy_4443*Dummy_4447 - Dummy_4442*Dummy_4444*Dummy_4446);
+       const double Dummy_4459 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4460 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4461 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4462 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4463 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4464 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4465 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4466 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4467 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4468 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4469 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4470 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4471 = -Dummy_4459 + Dummy_4462;
+       const double Dummy_4472 = -Dummy_4459 + Dummy_4465;
+       const double Dummy_4473 = -Dummy_4459 + Dummy_4468;
+       const double Dummy_4474 = -Dummy_4460 + Dummy_4463;
+       const double Dummy_4475 = -Dummy_4460 + Dummy_4466;
+       const double Dummy_4476 = -Dummy_4460 + Dummy_4469;
+       const double Dummy_4477 = -Dummy_4461 + Dummy_4464;
+       const double Dummy_4478 = -Dummy_4461 + Dummy_4467;
+       const double Dummy_4479 = -Dummy_4461 + Dummy_4470;
+       const double Dummy_4480 = (Dummy_4475*Dummy_4479 - Dummy_4476*Dummy_4478)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4481 = (-Dummy_4472*Dummy_4479 + Dummy_4473*Dummy_4478)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4482 = (Dummy_4472*Dummy_4476 - Dummy_4473*Dummy_4475)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4483 = (-Dummy_4474*Dummy_4479 + Dummy_4476*Dummy_4477)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4484 = (Dummy_4471*Dummy_4479 - Dummy_4473*Dummy_4477)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4485 = (-Dummy_4471*Dummy_4476 + Dummy_4473*Dummy_4474)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4486 = (Dummy_4474*Dummy_4478 - Dummy_4475*Dummy_4477)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4487 = (-Dummy_4471*Dummy_4478 + Dummy_4472*Dummy_4477)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4488 = (Dummy_4471*Dummy_4475 - Dummy_4472*Dummy_4474)*1.0 / (Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4489 = fabs(Dummy_4471*Dummy_4475*Dummy_4479 - Dummy_4471*Dummy_4476*Dummy_4478 - Dummy_4472*Dummy_4474*Dummy_4479 + Dummy_4472*Dummy_4476*Dummy_4477 + Dummy_4473*Dummy_4474*Dummy_4478 - Dummy_4473*Dummy_4475*Dummy_4477);
+       const double Dummy_4490 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4491 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4492 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4493 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4494 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4495 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4496 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4497 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4498 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4499 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4500 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4501 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4502 = -Dummy_4490 + Dummy_4493;
+       const double Dummy_4503 = -Dummy_4490 + Dummy_4496;
+       const double Dummy_4504 = -Dummy_4490 + Dummy_4499;
+       const double Dummy_4505 = -Dummy_4491 + Dummy_4494;
+       const double Dummy_4506 = -Dummy_4491 + Dummy_4497;
+       const double Dummy_4507 = -Dummy_4491 + Dummy_4500;
+       const double Dummy_4508 = -Dummy_4492 + Dummy_4495;
+       const double Dummy_4509 = -Dummy_4492 + Dummy_4498;
+       const double Dummy_4510 = -Dummy_4492 + Dummy_4501;
+       const double Dummy_4511 = (Dummy_4506*Dummy_4510 - Dummy_4507*Dummy_4509)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4512 = (-Dummy_4503*Dummy_4510 + Dummy_4504*Dummy_4509)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4513 = (Dummy_4503*Dummy_4507 - Dummy_4504*Dummy_4506)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4514 = (-Dummy_4505*Dummy_4510 + Dummy_4507*Dummy_4508)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4515 = (Dummy_4502*Dummy_4510 - Dummy_4504*Dummy_4508)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4516 = (-Dummy_4502*Dummy_4507 + Dummy_4504*Dummy_4505)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4517 = (Dummy_4505*Dummy_4509 - Dummy_4506*Dummy_4508)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4518 = (-Dummy_4502*Dummy_4509 + Dummy_4503*Dummy_4508)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4519 = (Dummy_4502*Dummy_4506 - Dummy_4503*Dummy_4505)*1.0 / (Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4520 = fabs(Dummy_4502*Dummy_4506*Dummy_4510 - Dummy_4502*Dummy_4507*Dummy_4509 - Dummy_4503*Dummy_4505*Dummy_4510 + Dummy_4503*Dummy_4507*Dummy_4508 + Dummy_4504*Dummy_4505*Dummy_4509 - Dummy_4504*Dummy_4506*Dummy_4508);
+       const double Dummy_4521 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0;
+       const double Dummy_4522 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0;
+       const double Dummy_4523 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0;
+       const double Dummy_4524 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4525 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4526 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4527 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4528 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4529 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4530 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4531 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4532 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4533 = -Dummy_4521 + Dummy_4524;
+       const double Dummy_4534 = -Dummy_4521 + Dummy_4527;
+       const double Dummy_4535 = -Dummy_4521 + Dummy_4530;
+       const double Dummy_4536 = -Dummy_4522 + Dummy_4525;
+       const double Dummy_4537 = -Dummy_4522 + Dummy_4528;
+       const double Dummy_4538 = -Dummy_4522 + Dummy_4531;
+       const double Dummy_4539 = -Dummy_4523 + Dummy_4526;
+       const double Dummy_4540 = -Dummy_4523 + Dummy_4529;
+       const double Dummy_4541 = -Dummy_4523 + Dummy_4532;
+       const double Dummy_4542 = (Dummy_4537*Dummy_4541 - Dummy_4538*Dummy_4540)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4543 = (-Dummy_4534*Dummy_4541 + Dummy_4535*Dummy_4540)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4544 = (Dummy_4534*Dummy_4538 - Dummy_4535*Dummy_4537)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4545 = (-Dummy_4536*Dummy_4541 + Dummy_4538*Dummy_4539)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4546 = (Dummy_4533*Dummy_4541 - Dummy_4535*Dummy_4539)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4547 = (-Dummy_4533*Dummy_4538 + Dummy_4535*Dummy_4536)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4548 = (Dummy_4536*Dummy_4540 - Dummy_4537*Dummy_4539)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4549 = (-Dummy_4533*Dummy_4540 + Dummy_4534*Dummy_4539)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4550 = (Dummy_4533*Dummy_4537 - Dummy_4534*Dummy_4536)*1.0 / (Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4551 = fabs(Dummy_4533*Dummy_4537*Dummy_4541 - Dummy_4533*Dummy_4538*Dummy_4540 - Dummy_4534*Dummy_4536*Dummy_4541 + Dummy_4534*Dummy_4538*Dummy_4539 + Dummy_4535*Dummy_4536*Dummy_4540 - Dummy_4535*Dummy_4537*Dummy_4539);
+       const double Dummy_4552 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4553 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4554 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4555 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0;
+       const double Dummy_4556 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0;
+       const double Dummy_4557 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0;
+       const double Dummy_4558 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4559 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4560 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4561 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0;
+       const double Dummy_4562 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0;
+       const double Dummy_4563 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0;
+       const double Dummy_4564 = -Dummy_4552 + Dummy_4555;
+       const double Dummy_4565 = -Dummy_4552 + Dummy_4558;
+       const double Dummy_4566 = -Dummy_4552 + Dummy_4561;
+       const double Dummy_4567 = -Dummy_4553 + Dummy_4556;
+       const double Dummy_4568 = -Dummy_4553 + Dummy_4559;
+       const double Dummy_4569 = -Dummy_4553 + Dummy_4562;
+       const double Dummy_4570 = -Dummy_4554 + Dummy_4557;
+       const double Dummy_4571 = -Dummy_4554 + Dummy_4560;
+       const double Dummy_4572 = -Dummy_4554 + Dummy_4563;
+       const double Dummy_4573 = (Dummy_4568*Dummy_4572 - Dummy_4569*Dummy_4571)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4574 = (-Dummy_4565*Dummy_4572 + Dummy_4566*Dummy_4571)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4575 = (Dummy_4565*Dummy_4569 - Dummy_4566*Dummy_4568)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4576 = (-Dummy_4567*Dummy_4572 + Dummy_4569*Dummy_4570)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4577 = (Dummy_4564*Dummy_4572 - Dummy_4566*Dummy_4570)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4578 = (-Dummy_4564*Dummy_4569 + Dummy_4566*Dummy_4567)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4579 = (Dummy_4567*Dummy_4571 - Dummy_4568*Dummy_4570)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4580 = (-Dummy_4564*Dummy_4571 + Dummy_4565*Dummy_4570)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4581 = (Dummy_4564*Dummy_4568 - Dummy_4565*Dummy_4567)*1.0 / (Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
+       const double Dummy_4582 = fabs(Dummy_4564*Dummy_4568*Dummy_4572 - Dummy_4564*Dummy_4569*Dummy_4571 - Dummy_4565*Dummy_4567*Dummy_4572 + Dummy_4565*Dummy_4569*Dummy_4570 + Dummy_4566*Dummy_4567*Dummy_4571 - Dummy_4566*Dummy_4568*Dummy_4570);
        {
           for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1)
           for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1)
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -706,7 +706,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -733,106 +733,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -842,15 +842,15 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -913,9 +913,9 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4466*tmp_q_4;
-                const double tmp_q_6 = Dummy_4469*tmp_q_4;
-                const double tmp_q_7 = Dummy_4472*tmp_q_4;
+                const double tmp_q_5 = Dummy_4449*tmp_q_4;
+                const double tmp_q_6 = Dummy_4452*tmp_q_4;
+                const double tmp_q_7 = Dummy_4455*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -928,88 +928,88 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4467*tmp_q_4;
-                const double tmp_q_21 = Dummy_4470*tmp_q_4;
-                const double tmp_q_22 = Dummy_4473*tmp_q_4;
+                const double tmp_q_20 = Dummy_4450*tmp_q_4;
+                const double tmp_q_21 = Dummy_4453*tmp_q_4;
+                const double tmp_q_22 = Dummy_4456*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4468*tmp_q_4;
-                const double tmp_q_25 = Dummy_4471*tmp_q_4;
-                const double tmp_q_26 = Dummy_4474*tmp_q_4;
+                const double tmp_q_24 = Dummy_4451*tmp_q_4;
+                const double tmp_q_25 = Dummy_4454*tmp_q_4;
+                const double tmp_q_26 = Dummy_4457*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4475*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4458*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4466*tmp_q_29;
+                const double tmp_q_30 = Dummy_4449*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4467*tmp_q_29;
+                const double tmp_q_32 = Dummy_4450*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4468*tmp_q_29;
+                const double tmp_q_34 = Dummy_4451*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4469*tmp_q_36;
-                const double tmp_q_38 = Dummy_4470*tmp_q_36;
-                const double tmp_q_39 = Dummy_4471*tmp_q_36;
+                const double tmp_q_37 = Dummy_4452*tmp_q_36;
+                const double tmp_q_38 = Dummy_4453*tmp_q_36;
+                const double tmp_q_39 = Dummy_4454*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4472*tmp_q_40;
-                const double tmp_q_42 = Dummy_4473*tmp_q_40;
-                const double tmp_q_43 = Dummy_4474*tmp_q_40;
-                const double tmp_q_44 = Dummy_4469*tmp_q_0;
+                const double tmp_q_41 = Dummy_4455*tmp_q_40;
+                const double tmp_q_42 = Dummy_4456*tmp_q_40;
+                const double tmp_q_43 = Dummy_4457*tmp_q_40;
+                const double tmp_q_44 = Dummy_4452*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4472*tmp_q_2;
+                const double tmp_q_46 = Dummy_4455*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4470*tmp_q_0;
+                const double tmp_q_49 = Dummy_4453*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4473*tmp_q_2;
+                const double tmp_q_51 = Dummy_4456*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4471*tmp_q_0;
+                const double tmp_q_54 = Dummy_4454*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4474*tmp_q_2;
+                const double tmp_q_56 = Dummy_4457*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4466*tmp_q_0;
+                const double tmp_q_59 = Dummy_4449*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4472*tmp_q_1;
+                const double tmp_q_61 = Dummy_4455*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4467*tmp_q_0;
+                const double tmp_q_64 = Dummy_4450*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4473*tmp_q_1;
+                const double tmp_q_66 = Dummy_4456*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4468*tmp_q_0;
+                const double tmp_q_69 = Dummy_4451*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4474*tmp_q_1;
+                const double tmp_q_71 = Dummy_4457*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4466*tmp_q_2;
+                const double tmp_q_74 = Dummy_4449*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4469*tmp_q_1;
+                const double tmp_q_76 = Dummy_4452*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4467*tmp_q_2;
+                const double tmp_q_79 = Dummy_4450*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4470*tmp_q_1;
+                const double tmp_q_81 = Dummy_4453*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4468*tmp_q_2;
+                const double tmp_q_84 = Dummy_4451*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4471*tmp_q_1;
+                const double tmp_q_86 = Dummy_4454*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4472*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4473*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4474*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4455*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4456*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4457*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4469*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4470*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4471*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4452*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4453*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4454*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4466*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4467*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4468*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4449*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4450*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4451*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1026,12 +1026,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4472*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4473*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4474*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4469*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4470*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4471*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4455*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4456*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4457*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4452*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4453*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4454*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1042,7 +1042,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4466*Dummy_4466)*tmp_q_103 + (Dummy_4467*Dummy_4467)*tmp_q_103 + (Dummy_4468*Dummy_4468)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4449*Dummy_4449)*tmp_q_103 + (Dummy_4450*Dummy_4450)*tmp_q_103 + (Dummy_4451*Dummy_4451)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -1051,7 +1051,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4469*Dummy_4469)*tmp_q_107 + (Dummy_4470*Dummy_4470)*tmp_q_107 + (Dummy_4471*Dummy_4471)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4452*Dummy_4452)*tmp_q_107 + (Dummy_4453*Dummy_4453)*tmp_q_107 + (Dummy_4454*Dummy_4454)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -1059,7 +1059,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4472*Dummy_4472)*tmp_q_108 + (Dummy_4473*Dummy_4473)*tmp_q_108 + (Dummy_4474*Dummy_4474)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4455*Dummy_4455)*tmp_q_108 + (Dummy_4456*Dummy_4456)*tmp_q_108 + (Dummy_4457*Dummy_4457)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -1086,7 +1086,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4467*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4468*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4466*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4450*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4451*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4449*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1291,7 +1291,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -1318,106 +1318,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -1427,15 +1427,15 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -1498,9 +1498,9 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4497*tmp_q_4;
-                const double tmp_q_6 = Dummy_4500*tmp_q_4;
-                const double tmp_q_7 = Dummy_4503*tmp_q_4;
+                const double tmp_q_5 = Dummy_4480*tmp_q_4;
+                const double tmp_q_6 = Dummy_4483*tmp_q_4;
+                const double tmp_q_7 = Dummy_4486*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -1513,88 +1513,88 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4498*tmp_q_4;
-                const double tmp_q_21 = Dummy_4501*tmp_q_4;
-                const double tmp_q_22 = Dummy_4504*tmp_q_4;
+                const double tmp_q_20 = Dummy_4481*tmp_q_4;
+                const double tmp_q_21 = Dummy_4484*tmp_q_4;
+                const double tmp_q_22 = Dummy_4487*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4499*tmp_q_4;
-                const double tmp_q_25 = Dummy_4502*tmp_q_4;
-                const double tmp_q_26 = Dummy_4505*tmp_q_4;
+                const double tmp_q_24 = Dummy_4482*tmp_q_4;
+                const double tmp_q_25 = Dummy_4485*tmp_q_4;
+                const double tmp_q_26 = Dummy_4488*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4506*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4489*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4497*tmp_q_29;
+                const double tmp_q_30 = Dummy_4480*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4498*tmp_q_29;
+                const double tmp_q_32 = Dummy_4481*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4499*tmp_q_29;
+                const double tmp_q_34 = Dummy_4482*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4500*tmp_q_36;
-                const double tmp_q_38 = Dummy_4501*tmp_q_36;
-                const double tmp_q_39 = Dummy_4502*tmp_q_36;
+                const double tmp_q_37 = Dummy_4483*tmp_q_36;
+                const double tmp_q_38 = Dummy_4484*tmp_q_36;
+                const double tmp_q_39 = Dummy_4485*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4503*tmp_q_40;
-                const double tmp_q_42 = Dummy_4504*tmp_q_40;
-                const double tmp_q_43 = Dummy_4505*tmp_q_40;
-                const double tmp_q_44 = Dummy_4500*tmp_q_0;
+                const double tmp_q_41 = Dummy_4486*tmp_q_40;
+                const double tmp_q_42 = Dummy_4487*tmp_q_40;
+                const double tmp_q_43 = Dummy_4488*tmp_q_40;
+                const double tmp_q_44 = Dummy_4483*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4503*tmp_q_2;
+                const double tmp_q_46 = Dummy_4486*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4501*tmp_q_0;
+                const double tmp_q_49 = Dummy_4484*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4504*tmp_q_2;
+                const double tmp_q_51 = Dummy_4487*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4502*tmp_q_0;
+                const double tmp_q_54 = Dummy_4485*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4505*tmp_q_2;
+                const double tmp_q_56 = Dummy_4488*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4497*tmp_q_0;
+                const double tmp_q_59 = Dummy_4480*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4503*tmp_q_1;
+                const double tmp_q_61 = Dummy_4486*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4498*tmp_q_0;
+                const double tmp_q_64 = Dummy_4481*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4504*tmp_q_1;
+                const double tmp_q_66 = Dummy_4487*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4499*tmp_q_0;
+                const double tmp_q_69 = Dummy_4482*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4505*tmp_q_1;
+                const double tmp_q_71 = Dummy_4488*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4497*tmp_q_2;
+                const double tmp_q_74 = Dummy_4480*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4500*tmp_q_1;
+                const double tmp_q_76 = Dummy_4483*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4498*tmp_q_2;
+                const double tmp_q_79 = Dummy_4481*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4501*tmp_q_1;
+                const double tmp_q_81 = Dummy_4484*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4499*tmp_q_2;
+                const double tmp_q_84 = Dummy_4482*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4502*tmp_q_1;
+                const double tmp_q_86 = Dummy_4485*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4503*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4504*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4505*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4486*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4487*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4488*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4500*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4501*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4502*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4483*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4484*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4485*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4497*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4498*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4499*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4480*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4481*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4482*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -1611,12 +1611,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4503*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4504*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4505*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4500*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4501*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4502*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4486*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4487*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4488*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4483*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4484*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4485*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -1627,7 +1627,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4497*Dummy_4497)*tmp_q_103 + (Dummy_4498*Dummy_4498)*tmp_q_103 + (Dummy_4499*Dummy_4499)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4480*Dummy_4480)*tmp_q_103 + (Dummy_4481*Dummy_4481)*tmp_q_103 + (Dummy_4482*Dummy_4482)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -1636,7 +1636,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4500*Dummy_4500)*tmp_q_107 + (Dummy_4501*Dummy_4501)*tmp_q_107 + (Dummy_4502*Dummy_4502)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4483*Dummy_4483)*tmp_q_107 + (Dummy_4484*Dummy_4484)*tmp_q_107 + (Dummy_4485*Dummy_4485)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -1644,7 +1644,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4503*Dummy_4503)*tmp_q_108 + (Dummy_4504*Dummy_4504)*tmp_q_108 + (Dummy_4505*Dummy_4505)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4486*Dummy_4486)*tmp_q_108 + (Dummy_4487*Dummy_4487)*tmp_q_108 + (Dummy_4488*Dummy_4488)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -1671,7 +1671,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4498*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4499*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4497*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4481*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4482*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4480*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -1876,7 +1876,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -1903,106 +1903,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -2012,15 +2012,15 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -2083,9 +2083,9 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4528*tmp_q_4;
-                const double tmp_q_6 = Dummy_4531*tmp_q_4;
-                const double tmp_q_7 = Dummy_4534*tmp_q_4;
+                const double tmp_q_5 = Dummy_4511*tmp_q_4;
+                const double tmp_q_6 = Dummy_4514*tmp_q_4;
+                const double tmp_q_7 = Dummy_4517*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -2098,88 +2098,88 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4529*tmp_q_4;
-                const double tmp_q_21 = Dummy_4532*tmp_q_4;
-                const double tmp_q_22 = Dummy_4535*tmp_q_4;
+                const double tmp_q_20 = Dummy_4512*tmp_q_4;
+                const double tmp_q_21 = Dummy_4515*tmp_q_4;
+                const double tmp_q_22 = Dummy_4518*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4530*tmp_q_4;
-                const double tmp_q_25 = Dummy_4533*tmp_q_4;
-                const double tmp_q_26 = Dummy_4536*tmp_q_4;
+                const double tmp_q_24 = Dummy_4513*tmp_q_4;
+                const double tmp_q_25 = Dummy_4516*tmp_q_4;
+                const double tmp_q_26 = Dummy_4519*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4537*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4520*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4528*tmp_q_29;
+                const double tmp_q_30 = Dummy_4511*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4529*tmp_q_29;
+                const double tmp_q_32 = Dummy_4512*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4530*tmp_q_29;
+                const double tmp_q_34 = Dummy_4513*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4531*tmp_q_36;
-                const double tmp_q_38 = Dummy_4532*tmp_q_36;
-                const double tmp_q_39 = Dummy_4533*tmp_q_36;
+                const double tmp_q_37 = Dummy_4514*tmp_q_36;
+                const double tmp_q_38 = Dummy_4515*tmp_q_36;
+                const double tmp_q_39 = Dummy_4516*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4534*tmp_q_40;
-                const double tmp_q_42 = Dummy_4535*tmp_q_40;
-                const double tmp_q_43 = Dummy_4536*tmp_q_40;
-                const double tmp_q_44 = Dummy_4531*tmp_q_0;
+                const double tmp_q_41 = Dummy_4517*tmp_q_40;
+                const double tmp_q_42 = Dummy_4518*tmp_q_40;
+                const double tmp_q_43 = Dummy_4519*tmp_q_40;
+                const double tmp_q_44 = Dummy_4514*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4534*tmp_q_2;
+                const double tmp_q_46 = Dummy_4517*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4532*tmp_q_0;
+                const double tmp_q_49 = Dummy_4515*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4535*tmp_q_2;
+                const double tmp_q_51 = Dummy_4518*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4533*tmp_q_0;
+                const double tmp_q_54 = Dummy_4516*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4536*tmp_q_2;
+                const double tmp_q_56 = Dummy_4519*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4528*tmp_q_0;
+                const double tmp_q_59 = Dummy_4511*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4534*tmp_q_1;
+                const double tmp_q_61 = Dummy_4517*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4529*tmp_q_0;
+                const double tmp_q_64 = Dummy_4512*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4535*tmp_q_1;
+                const double tmp_q_66 = Dummy_4518*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4530*tmp_q_0;
+                const double tmp_q_69 = Dummy_4513*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4536*tmp_q_1;
+                const double tmp_q_71 = Dummy_4519*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4528*tmp_q_2;
+                const double tmp_q_74 = Dummy_4511*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4531*tmp_q_1;
+                const double tmp_q_76 = Dummy_4514*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4529*tmp_q_2;
+                const double tmp_q_79 = Dummy_4512*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4532*tmp_q_1;
+                const double tmp_q_81 = Dummy_4515*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4530*tmp_q_2;
+                const double tmp_q_84 = Dummy_4513*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4533*tmp_q_1;
+                const double tmp_q_86 = Dummy_4516*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4534*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4535*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4536*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4517*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4518*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4519*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4531*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4532*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4533*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4514*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4515*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4516*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4528*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4529*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4530*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4511*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4512*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4513*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -2196,12 +2196,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4534*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4535*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4536*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4531*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4532*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4533*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4517*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4518*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4519*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4514*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4515*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4516*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -2212,7 +2212,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4528*Dummy_4528)*tmp_q_103 + (Dummy_4529*Dummy_4529)*tmp_q_103 + (Dummy_4530*Dummy_4530)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4511*Dummy_4511)*tmp_q_103 + (Dummy_4512*Dummy_4512)*tmp_q_103 + (Dummy_4513*Dummy_4513)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -2221,7 +2221,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4531*Dummy_4531)*tmp_q_107 + (Dummy_4532*Dummy_4532)*tmp_q_107 + (Dummy_4533*Dummy_4533)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4514*Dummy_4514)*tmp_q_107 + (Dummy_4515*Dummy_4515)*tmp_q_107 + (Dummy_4516*Dummy_4516)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -2229,7 +2229,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4534*Dummy_4534)*tmp_q_108 + (Dummy_4535*Dummy_4535)*tmp_q_108 + (Dummy_4536*Dummy_4536)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4517*Dummy_4517)*tmp_q_108 + (Dummy_4518*Dummy_4518)*tmp_q_108 + (Dummy_4519*Dummy_4519)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -2256,7 +2256,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4529*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4530*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4528*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4512*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4513*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4511*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -2461,7 +2461,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]));
@@ -2488,106 +2488,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -2597,15 +2597,15 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_9 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_0 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_5 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -2668,9 +2668,9 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4559*tmp_q_4;
-                const double tmp_q_6 = Dummy_4562*tmp_q_4;
-                const double tmp_q_7 = Dummy_4565*tmp_q_4;
+                const double tmp_q_5 = Dummy_4542*tmp_q_4;
+                const double tmp_q_6 = Dummy_4545*tmp_q_4;
+                const double tmp_q_7 = Dummy_4548*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -2683,88 +2683,88 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4560*tmp_q_4;
-                const double tmp_q_21 = Dummy_4563*tmp_q_4;
-                const double tmp_q_22 = Dummy_4566*tmp_q_4;
+                const double tmp_q_20 = Dummy_4543*tmp_q_4;
+                const double tmp_q_21 = Dummy_4546*tmp_q_4;
+                const double tmp_q_22 = Dummy_4549*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4561*tmp_q_4;
-                const double tmp_q_25 = Dummy_4564*tmp_q_4;
-                const double tmp_q_26 = Dummy_4567*tmp_q_4;
+                const double tmp_q_24 = Dummy_4544*tmp_q_4;
+                const double tmp_q_25 = Dummy_4547*tmp_q_4;
+                const double tmp_q_26 = Dummy_4550*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4568*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4551*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4559*tmp_q_29;
+                const double tmp_q_30 = Dummy_4542*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4560*tmp_q_29;
+                const double tmp_q_32 = Dummy_4543*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4561*tmp_q_29;
+                const double tmp_q_34 = Dummy_4544*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4562*tmp_q_36;
-                const double tmp_q_38 = Dummy_4563*tmp_q_36;
-                const double tmp_q_39 = Dummy_4564*tmp_q_36;
+                const double tmp_q_37 = Dummy_4545*tmp_q_36;
+                const double tmp_q_38 = Dummy_4546*tmp_q_36;
+                const double tmp_q_39 = Dummy_4547*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4565*tmp_q_40;
-                const double tmp_q_42 = Dummy_4566*tmp_q_40;
-                const double tmp_q_43 = Dummy_4567*tmp_q_40;
-                const double tmp_q_44 = Dummy_4562*tmp_q_0;
+                const double tmp_q_41 = Dummy_4548*tmp_q_40;
+                const double tmp_q_42 = Dummy_4549*tmp_q_40;
+                const double tmp_q_43 = Dummy_4550*tmp_q_40;
+                const double tmp_q_44 = Dummy_4545*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4565*tmp_q_2;
+                const double tmp_q_46 = Dummy_4548*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4563*tmp_q_0;
+                const double tmp_q_49 = Dummy_4546*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4566*tmp_q_2;
+                const double tmp_q_51 = Dummy_4549*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4564*tmp_q_0;
+                const double tmp_q_54 = Dummy_4547*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4567*tmp_q_2;
+                const double tmp_q_56 = Dummy_4550*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4559*tmp_q_0;
+                const double tmp_q_59 = Dummy_4542*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4565*tmp_q_1;
+                const double tmp_q_61 = Dummy_4548*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4560*tmp_q_0;
+                const double tmp_q_64 = Dummy_4543*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4566*tmp_q_1;
+                const double tmp_q_66 = Dummy_4549*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4561*tmp_q_0;
+                const double tmp_q_69 = Dummy_4544*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4567*tmp_q_1;
+                const double tmp_q_71 = Dummy_4550*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4559*tmp_q_2;
+                const double tmp_q_74 = Dummy_4542*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4562*tmp_q_1;
+                const double tmp_q_76 = Dummy_4545*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4560*tmp_q_2;
+                const double tmp_q_79 = Dummy_4543*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4563*tmp_q_1;
+                const double tmp_q_81 = Dummy_4546*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4561*tmp_q_2;
+                const double tmp_q_84 = Dummy_4544*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4564*tmp_q_1;
+                const double tmp_q_86 = Dummy_4547*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4565*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4566*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4567*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4548*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4549*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4550*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4562*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4563*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4564*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4545*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4546*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4547*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4559*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4560*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4561*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4542*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4543*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4544*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -2781,12 +2781,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4565*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4566*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4567*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4562*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4563*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4564*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4548*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4549*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4550*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4545*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4546*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4547*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -2797,7 +2797,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4559*Dummy_4559)*tmp_q_103 + (Dummy_4560*Dummy_4560)*tmp_q_103 + (Dummy_4561*Dummy_4561)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4542*Dummy_4542)*tmp_q_103 + (Dummy_4543*Dummy_4543)*tmp_q_103 + (Dummy_4544*Dummy_4544)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -2806,7 +2806,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4562*Dummy_4562)*tmp_q_107 + (Dummy_4563*Dummy_4563)*tmp_q_107 + (Dummy_4564*Dummy_4564)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4545*Dummy_4545)*tmp_q_107 + (Dummy_4546*Dummy_4546)*tmp_q_107 + (Dummy_4547*Dummy_4547)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -2814,7 +2814,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4565*Dummy_4565)*tmp_q_108 + (Dummy_4566*Dummy_4566)*tmp_q_108 + (Dummy_4567*Dummy_4567)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4548*Dummy_4548)*tmp_q_108 + (Dummy_4549*Dummy_4549)*tmp_q_108 + (Dummy_4550*Dummy_4550)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -2841,7 +2841,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4560*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4561*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4559*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4543*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4544*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4542*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -3046,7 +3046,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
@@ -3073,106 +3073,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
@@ -3182,15 +3182,15 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
           for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
           {
              const double k_dof_4 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
-             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_1 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1];
-             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_7 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              const double k_dof_6 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1];
+             const double k_dof_9 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
+             const double k_dof_2 = _data_kVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1];
              const double k_dof_8 = _data_kEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))];
+             const double k_dof_3 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))];
              const double k_dof_0 = _data_kVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))];
-             const double k_dof_5 = _data_kEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))];
              double q_acc_0_0 = 0.0;
              double q_acc_0_1 = 0.0;
              double q_acc_0_2 = 0.0;
@@ -3253,9 +3253,9 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_2 = 4.0*_data_q_p_1[q];
                 const double tmp_q_3 = tmp_q_1 + tmp_q_2;
                 const double tmp_q_4 = tmp_q_0 + tmp_q_3 - 3.0;
-                const double tmp_q_5 = Dummy_4590*tmp_q_4;
-                const double tmp_q_6 = Dummy_4593*tmp_q_4;
-                const double tmp_q_7 = Dummy_4596*tmp_q_4;
+                const double tmp_q_5 = Dummy_4573*tmp_q_4;
+                const double tmp_q_6 = Dummy_4576*tmp_q_4;
+                const double tmp_q_7 = Dummy_4579*tmp_q_4;
                 const double tmp_q_8 = tmp_q_5 + tmp_q_6 + tmp_q_7;
                 const double tmp_q_9 = tmp_q_2*_data_q_p_2[q];
                 const double tmp_q_10 = tmp_q_1*_data_q_p_2[q];
@@ -3268,88 +3268,88 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_17 = tmp_q_16*2.0;
                 const double tmp_q_18 = tmp_q_10 + tmp_q_11;
                 const double tmp_q_19 = k_dof_0*(tmp_q_13 + tmp_q_15 + tmp_q_17 + tmp_q_18 + tmp_q_9 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0) + k_dof_1*(tmp_q_13 - _data_q_p_0[q]) + k_dof_2*(tmp_q_15 - _data_q_p_1[q]) + k_dof_3*(tmp_q_17 - _data_q_p_2[q]) + k_dof_4*tmp_q_9 + k_dof_5*tmp_q_10 + k_dof_6*tmp_q_11 + k_dof_7*(tmp_q_0 - tmp_q_10 + tmp_q_16*-4.0 - tmp_q_9) + k_dof_8*(-tmp_q_11 + tmp_q_14*-4.0 + tmp_q_2 - tmp_q_9) + k_dof_9*(tmp_q_1 + tmp_q_12*-4.0 - tmp_q_18);
-                const double tmp_q_20 = Dummy_4591*tmp_q_4;
-                const double tmp_q_21 = Dummy_4594*tmp_q_4;
-                const double tmp_q_22 = Dummy_4597*tmp_q_4;
+                const double tmp_q_20 = Dummy_4574*tmp_q_4;
+                const double tmp_q_21 = Dummy_4577*tmp_q_4;
+                const double tmp_q_22 = Dummy_4580*tmp_q_4;
                 const double tmp_q_23 = tmp_q_20 + tmp_q_21 + tmp_q_22;
-                const double tmp_q_24 = Dummy_4592*tmp_q_4;
-                const double tmp_q_25 = Dummy_4595*tmp_q_4;
-                const double tmp_q_26 = Dummy_4598*tmp_q_4;
+                const double tmp_q_24 = Dummy_4575*tmp_q_4;
+                const double tmp_q_25 = Dummy_4578*tmp_q_4;
+                const double tmp_q_26 = Dummy_4581*tmp_q_4;
                 const double tmp_q_27 = tmp_q_24 + tmp_q_25 + tmp_q_26;
-                const double tmp_q_28 = Dummy_4599*_data_q_w[q];
+                const double tmp_q_28 = Dummy_4582*_data_q_w[q];
                 const double tmp_q_29 = tmp_q_1 - 1.0;
-                const double tmp_q_30 = Dummy_4590*tmp_q_29;
+                const double tmp_q_30 = Dummy_4573*tmp_q_29;
                 const double tmp_q_31 = tmp_q_19*tmp_q_8;
-                const double tmp_q_32 = Dummy_4591*tmp_q_29;
+                const double tmp_q_32 = Dummy_4574*tmp_q_29;
                 const double tmp_q_33 = tmp_q_19*tmp_q_23;
-                const double tmp_q_34 = Dummy_4592*tmp_q_29;
+                const double tmp_q_34 = Dummy_4575*tmp_q_29;
                 const double tmp_q_35 = tmp_q_19*tmp_q_27;
                 const double tmp_q_36 = tmp_q_2 - 1.0;
-                const double tmp_q_37 = Dummy_4593*tmp_q_36;
-                const double tmp_q_38 = Dummy_4594*tmp_q_36;
-                const double tmp_q_39 = Dummy_4595*tmp_q_36;
+                const double tmp_q_37 = Dummy_4576*tmp_q_36;
+                const double tmp_q_38 = Dummy_4577*tmp_q_36;
+                const double tmp_q_39 = Dummy_4578*tmp_q_36;
                 const double tmp_q_40 = tmp_q_0 - 1.0;
-                const double tmp_q_41 = Dummy_4596*tmp_q_40;
-                const double tmp_q_42 = Dummy_4597*tmp_q_40;
-                const double tmp_q_43 = Dummy_4598*tmp_q_40;
-                const double tmp_q_44 = Dummy_4593*tmp_q_0;
+                const double tmp_q_41 = Dummy_4579*tmp_q_40;
+                const double tmp_q_42 = Dummy_4580*tmp_q_40;
+                const double tmp_q_43 = Dummy_4581*tmp_q_40;
+                const double tmp_q_44 = Dummy_4576*tmp_q_0;
                 const double tmp_q_45 = tmp_q_19*tmp_q_44;
-                const double tmp_q_46 = Dummy_4596*tmp_q_2;
+                const double tmp_q_46 = Dummy_4579*tmp_q_2;
                 const double tmp_q_47 = tmp_q_19*tmp_q_46;
                 const double tmp_q_48 = tmp_q_45 + tmp_q_47;
-                const double tmp_q_49 = Dummy_4594*tmp_q_0;
+                const double tmp_q_49 = Dummy_4577*tmp_q_0;
                 const double tmp_q_50 = tmp_q_19*tmp_q_49;
-                const double tmp_q_51 = Dummy_4597*tmp_q_2;
+                const double tmp_q_51 = Dummy_4580*tmp_q_2;
                 const double tmp_q_52 = tmp_q_19*tmp_q_51;
                 const double tmp_q_53 = tmp_q_50 + tmp_q_52;
-                const double tmp_q_54 = Dummy_4595*tmp_q_0;
+                const double tmp_q_54 = Dummy_4578*tmp_q_0;
                 const double tmp_q_55 = tmp_q_19*tmp_q_54;
-                const double tmp_q_56 = Dummy_4598*tmp_q_2;
+                const double tmp_q_56 = Dummy_4581*tmp_q_2;
                 const double tmp_q_57 = tmp_q_19*tmp_q_56;
                 const double tmp_q_58 = tmp_q_55 + tmp_q_57;
-                const double tmp_q_59 = Dummy_4590*tmp_q_0;
+                const double tmp_q_59 = Dummy_4573*tmp_q_0;
                 const double tmp_q_60 = tmp_q_19*tmp_q_59;
-                const double tmp_q_61 = Dummy_4596*tmp_q_1;
+                const double tmp_q_61 = Dummy_4579*tmp_q_1;
                 const double tmp_q_62 = tmp_q_19*tmp_q_61;
                 const double tmp_q_63 = tmp_q_60 + tmp_q_62;
-                const double tmp_q_64 = Dummy_4591*tmp_q_0;
+                const double tmp_q_64 = Dummy_4574*tmp_q_0;
                 const double tmp_q_65 = tmp_q_19*tmp_q_64;
-                const double tmp_q_66 = Dummy_4597*tmp_q_1;
+                const double tmp_q_66 = Dummy_4580*tmp_q_1;
                 const double tmp_q_67 = tmp_q_19*tmp_q_66;
                 const double tmp_q_68 = tmp_q_65 + tmp_q_67;
-                const double tmp_q_69 = Dummy_4592*tmp_q_0;
+                const double tmp_q_69 = Dummy_4575*tmp_q_0;
                 const double tmp_q_70 = tmp_q_19*tmp_q_69;
-                const double tmp_q_71 = Dummy_4598*tmp_q_1;
+                const double tmp_q_71 = Dummy_4581*tmp_q_1;
                 const double tmp_q_72 = tmp_q_19*tmp_q_71;
                 const double tmp_q_73 = tmp_q_70 + tmp_q_72;
-                const double tmp_q_74 = Dummy_4590*tmp_q_2;
+                const double tmp_q_74 = Dummy_4573*tmp_q_2;
                 const double tmp_q_75 = tmp_q_19*tmp_q_74;
-                const double tmp_q_76 = Dummy_4593*tmp_q_1;
+                const double tmp_q_76 = Dummy_4576*tmp_q_1;
                 const double tmp_q_77 = tmp_q_19*tmp_q_76;
                 const double tmp_q_78 = tmp_q_75 + tmp_q_77;
-                const double tmp_q_79 = Dummy_4591*tmp_q_2;
+                const double tmp_q_79 = Dummy_4574*tmp_q_2;
                 const double tmp_q_80 = tmp_q_19*tmp_q_79;
-                const double tmp_q_81 = Dummy_4594*tmp_q_1;
+                const double tmp_q_81 = Dummy_4577*tmp_q_1;
                 const double tmp_q_82 = tmp_q_19*tmp_q_81;
                 const double tmp_q_83 = tmp_q_80 + tmp_q_82;
-                const double tmp_q_84 = Dummy_4592*tmp_q_2;
+                const double tmp_q_84 = Dummy_4575*tmp_q_2;
                 const double tmp_q_85 = tmp_q_19*tmp_q_84;
-                const double tmp_q_86 = Dummy_4595*tmp_q_1;
+                const double tmp_q_86 = Dummy_4578*tmp_q_1;
                 const double tmp_q_87 = tmp_q_19*tmp_q_86;
                 const double tmp_q_88 = tmp_q_85 + tmp_q_87;
                 const double tmp_q_89 = -tmp_q_3 - 8.0*_data_q_p_2[q] + 4.0;
-                const double tmp_q_90 = Dummy_4596*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
-                const double tmp_q_91 = Dummy_4597*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
-                const double tmp_q_92 = Dummy_4598*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
+                const double tmp_q_90 = Dummy_4579*tmp_q_19*tmp_q_89 - tmp_q_45 - tmp_q_60;
+                const double tmp_q_91 = Dummy_4580*tmp_q_19*tmp_q_89 - tmp_q_50 - tmp_q_65;
+                const double tmp_q_92 = Dummy_4581*tmp_q_19*tmp_q_89 - tmp_q_55 - tmp_q_70;
                 const double tmp_q_93 = tmp_q_0 - 4.0;
                 const double tmp_q_94 = -tmp_q_1 - tmp_q_93 - 8.0*_data_q_p_1[q];
-                const double tmp_q_95 = Dummy_4593*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
-                const double tmp_q_96 = Dummy_4594*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
-                const double tmp_q_97 = Dummy_4595*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
+                const double tmp_q_95 = Dummy_4576*tmp_q_19*tmp_q_94 - tmp_q_47 - tmp_q_75;
+                const double tmp_q_96 = Dummy_4577*tmp_q_19*tmp_q_94 - tmp_q_52 - tmp_q_80;
+                const double tmp_q_97 = Dummy_4578*tmp_q_19*tmp_q_94 - tmp_q_57 - tmp_q_85;
                 const double tmp_q_98 = -tmp_q_2 - tmp_q_93 - 8.0*_data_q_p_0[q];
-                const double tmp_q_99 = Dummy_4590*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
-                const double tmp_q_100 = Dummy_4591*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
-                const double tmp_q_101 = Dummy_4592*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
+                const double tmp_q_99 = Dummy_4573*tmp_q_19*tmp_q_98 - tmp_q_62 - tmp_q_77;
+                const double tmp_q_100 = Dummy_4574*tmp_q_19*tmp_q_98 - tmp_q_67 - tmp_q_82;
+                const double tmp_q_101 = Dummy_4575*tmp_q_19*tmp_q_98 - tmp_q_72 - tmp_q_87;
                 const double tmp_q_102 = tmp_q_19*16.0;
                 const double tmp_q_103 = tmp_q_102*((-0.25 + _data_q_p_0[q])*(-0.25 + _data_q_p_0[q]));
                 const double tmp_q_104 = tmp_q_19*tmp_q_30;
@@ -3366,12 +3366,12 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double tmp_q_115 = tmp_q_74 + tmp_q_76;
                 const double tmp_q_116 = tmp_q_79 + tmp_q_81;
                 const double tmp_q_117 = tmp_q_84 + tmp_q_86;
-                const double tmp_q_118 = Dummy_4596*tmp_q_89 - tmp_q_44 - tmp_q_59;
-                const double tmp_q_119 = Dummy_4597*tmp_q_89 - tmp_q_49 - tmp_q_64;
-                const double tmp_q_120 = Dummy_4598*tmp_q_89 - tmp_q_54 - tmp_q_69;
-                const double tmp_q_121 = Dummy_4593*tmp_q_94 - tmp_q_46 - tmp_q_74;
-                const double tmp_q_122 = Dummy_4594*tmp_q_94 - tmp_q_51 - tmp_q_79;
-                const double tmp_q_123 = Dummy_4595*tmp_q_94 - tmp_q_56 - tmp_q_84;
+                const double tmp_q_118 = Dummy_4579*tmp_q_89 - tmp_q_44 - tmp_q_59;
+                const double tmp_q_119 = Dummy_4580*tmp_q_89 - tmp_q_49 - tmp_q_64;
+                const double tmp_q_120 = Dummy_4581*tmp_q_89 - tmp_q_54 - tmp_q_69;
+                const double tmp_q_121 = Dummy_4576*tmp_q_94 - tmp_q_46 - tmp_q_74;
+                const double tmp_q_122 = Dummy_4577*tmp_q_94 - tmp_q_51 - tmp_q_79;
+                const double tmp_q_123 = Dummy_4578*tmp_q_94 - tmp_q_56 - tmp_q_84;
                 const double res_tmp_0_0 = tmp_q_28*(tmp_q_23*(tmp_q_19*tmp_q_20 + tmp_q_19*tmp_q_21 + tmp_q_19*tmp_q_22) + tmp_q_27*(tmp_q_19*tmp_q_24 + tmp_q_19*tmp_q_25 + tmp_q_19*tmp_q_26) + tmp_q_8*(tmp_q_19*tmp_q_5 + tmp_q_19*tmp_q_6 + tmp_q_19*tmp_q_7));
                 const double res_tmp_0_1 = tmp_q_28*(tmp_q_30*tmp_q_31 + tmp_q_32*tmp_q_33 + tmp_q_34*tmp_q_35);
                 const double res_tmp_0_2 = tmp_q_28*(tmp_q_31*tmp_q_37 + tmp_q_33*tmp_q_38 + tmp_q_35*tmp_q_39);
@@ -3382,7 +3382,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_0_7 = tmp_q_28*(tmp_q_23*tmp_q_91 + tmp_q_27*tmp_q_92 + tmp_q_8*tmp_q_90);
                 const double res_tmp_0_8 = tmp_q_28*(tmp_q_23*tmp_q_96 + tmp_q_27*tmp_q_97 + tmp_q_8*tmp_q_95);
                 const double res_tmp_0_9 = tmp_q_28*(tmp_q_100*tmp_q_23 + tmp_q_101*tmp_q_27 + tmp_q_8*tmp_q_99);
-                const double res_tmp_1_1 = tmp_q_28*((Dummy_4590*Dummy_4590)*tmp_q_103 + (Dummy_4591*Dummy_4591)*tmp_q_103 + (Dummy_4592*Dummy_4592)*tmp_q_103);
+                const double res_tmp_1_1 = tmp_q_28*((Dummy_4573*Dummy_4573)*tmp_q_103 + (Dummy_4574*Dummy_4574)*tmp_q_103 + (Dummy_4575*Dummy_4575)*tmp_q_103);
                 const double res_tmp_1_2 = tmp_q_28*(tmp_q_104*tmp_q_37 + tmp_q_105*tmp_q_38 + tmp_q_106*tmp_q_39);
                 const double res_tmp_1_3 = tmp_q_28*(tmp_q_104*tmp_q_41 + tmp_q_105*tmp_q_42 + tmp_q_106*tmp_q_43);
                 const double res_tmp_1_4 = tmp_q_28*(tmp_q_30*tmp_q_48 + tmp_q_32*tmp_q_53 + tmp_q_34*tmp_q_58);
@@ -3391,7 +3391,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_1_7 = tmp_q_28*(tmp_q_30*tmp_q_90 + tmp_q_32*tmp_q_91 + tmp_q_34*tmp_q_92);
                 const double res_tmp_1_8 = tmp_q_28*(tmp_q_30*tmp_q_95 + tmp_q_32*tmp_q_96 + tmp_q_34*tmp_q_97);
                 const double res_tmp_1_9 = tmp_q_28*(tmp_q_100*tmp_q_32 + tmp_q_101*tmp_q_34 + tmp_q_30*tmp_q_99);
-                const double res_tmp_2_2 = tmp_q_28*((Dummy_4593*Dummy_4593)*tmp_q_107 + (Dummy_4594*Dummy_4594)*tmp_q_107 + (Dummy_4595*Dummy_4595)*tmp_q_107);
+                const double res_tmp_2_2 = tmp_q_28*((Dummy_4576*Dummy_4576)*tmp_q_107 + (Dummy_4577*Dummy_4577)*tmp_q_107 + (Dummy_4578*Dummy_4578)*tmp_q_107);
                 const double res_tmp_2_3 = tmp_q_28*(tmp_q_19*tmp_q_37*tmp_q_41 + tmp_q_19*tmp_q_38*tmp_q_42 + tmp_q_19*tmp_q_39*tmp_q_43);
                 const double res_tmp_2_4 = tmp_q_28*(tmp_q_37*tmp_q_48 + tmp_q_38*tmp_q_53 + tmp_q_39*tmp_q_58);
                 const double res_tmp_2_5 = tmp_q_28*(tmp_q_37*tmp_q_63 + tmp_q_38*tmp_q_68 + tmp_q_39*tmp_q_73);
@@ -3399,7 +3399,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_2_7 = tmp_q_28*(tmp_q_37*tmp_q_90 + tmp_q_38*tmp_q_91 + tmp_q_39*tmp_q_92);
                 const double res_tmp_2_8 = tmp_q_28*(tmp_q_37*tmp_q_95 + tmp_q_38*tmp_q_96 + tmp_q_39*tmp_q_97);
                 const double res_tmp_2_9 = tmp_q_28*(tmp_q_100*tmp_q_38 + tmp_q_101*tmp_q_39 + tmp_q_37*tmp_q_99);
-                const double res_tmp_3_3 = tmp_q_28*((Dummy_4596*Dummy_4596)*tmp_q_108 + (Dummy_4597*Dummy_4597)*tmp_q_108 + (Dummy_4598*Dummy_4598)*tmp_q_108);
+                const double res_tmp_3_3 = tmp_q_28*((Dummy_4579*Dummy_4579)*tmp_q_108 + (Dummy_4580*Dummy_4580)*tmp_q_108 + (Dummy_4581*Dummy_4581)*tmp_q_108);
                 const double res_tmp_3_4 = tmp_q_28*(tmp_q_41*tmp_q_48 + tmp_q_42*tmp_q_53 + tmp_q_43*tmp_q_58);
                 const double res_tmp_3_5 = tmp_q_28*(tmp_q_41*tmp_q_63 + tmp_q_42*tmp_q_68 + tmp_q_43*tmp_q_73);
                 const double res_tmp_3_6 = tmp_q_28*(tmp_q_41*tmp_q_78 + tmp_q_42*tmp_q_83 + tmp_q_43*tmp_q_88);
@@ -3426,7 +3426,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
                 const double res_tmp_7_9 = tmp_q_28*(tmp_q_100*tmp_q_119 + tmp_q_101*tmp_q_120 + tmp_q_118*tmp_q_99);
                 const double res_tmp_8_8 = tmp_q_28*(tmp_q_121*tmp_q_95 + tmp_q_122*tmp_q_96 + tmp_q_123*tmp_q_97);
                 const double res_tmp_8_9 = tmp_q_28*(tmp_q_100*tmp_q_122 + tmp_q_101*tmp_q_123 + tmp_q_121*tmp_q_99);
-                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4591*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4592*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4590*tmp_q_98 - tmp_q_61 - tmp_q_76));
+                const double res_tmp_9_9 = tmp_q_28*(tmp_q_100*(Dummy_4574*tmp_q_98 - tmp_q_66 - tmp_q_81) + tmp_q_101*(Dummy_4575*tmp_q_98 - tmp_q_71 - tmp_q_86) + tmp_q_99*(Dummy_4573*tmp_q_98 - tmp_q_61 - tmp_q_76));
                 q_acc_0_0 = q_acc_0_0 + res_tmp_0_0;
                 q_acc_0_1 = q_acc_0_1 + res_tmp_0_1;
                 q_acc_0_2 = q_acc_0_2 + res_tmp_0_2;
@@ -3631,7 +3631,7 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
              std::vector< uint_t > _data_rowIdx( 10 );
              std::vector< uint_t > _data_colIdx( 10 );
-             std::vector< double > _data_mat( 100 );
+             std::vector< real_t > _data_mat( 100 );
          
              _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]));
              _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]));
@@ -3658,106 +3658,106 @@ void P2ElementwiseDivKGrad::toMatrix_macro_3D( int64_t * RESTRICT  _data_dstEdge
          
          
          
-             _data_mat[0] = elMat_0_0;
-             _data_mat[1] = elMat_0_1;
-             _data_mat[2] = elMat_0_2;
-             _data_mat[3] = elMat_0_3;
-             _data_mat[4] = elMat_0_4;
-             _data_mat[5] = elMat_0_5;
-             _data_mat[6] = elMat_0_6;
-             _data_mat[7] = elMat_0_7;
-             _data_mat[8] = elMat_0_8;
-             _data_mat[9] = elMat_0_9;
-             _data_mat[10] = elMat_1_0;
-             _data_mat[11] = elMat_1_1;
-             _data_mat[12] = elMat_1_2;
-             _data_mat[13] = elMat_1_3;
-             _data_mat[14] = elMat_1_4;
-             _data_mat[15] = elMat_1_5;
-             _data_mat[16] = elMat_1_6;
-             _data_mat[17] = elMat_1_7;
-             _data_mat[18] = elMat_1_8;
-             _data_mat[19] = elMat_1_9;
-             _data_mat[20] = elMat_2_0;
-             _data_mat[21] = elMat_2_1;
-             _data_mat[22] = elMat_2_2;
-             _data_mat[23] = elMat_2_3;
-             _data_mat[24] = elMat_2_4;
-             _data_mat[25] = elMat_2_5;
-             _data_mat[26] = elMat_2_6;
-             _data_mat[27] = elMat_2_7;
-             _data_mat[28] = elMat_2_8;
-             _data_mat[29] = elMat_2_9;
-             _data_mat[30] = elMat_3_0;
-             _data_mat[31] = elMat_3_1;
-             _data_mat[32] = elMat_3_2;
-             _data_mat[33] = elMat_3_3;
-             _data_mat[34] = elMat_3_4;
-             _data_mat[35] = elMat_3_5;
-             _data_mat[36] = elMat_3_6;
-             _data_mat[37] = elMat_3_7;
-             _data_mat[38] = elMat_3_8;
-             _data_mat[39] = elMat_3_9;
-             _data_mat[40] = elMat_4_0;
-             _data_mat[41] = elMat_4_1;
-             _data_mat[42] = elMat_4_2;
-             _data_mat[43] = elMat_4_3;
-             _data_mat[44] = elMat_4_4;
-             _data_mat[45] = elMat_4_5;
-             _data_mat[46] = elMat_4_6;
-             _data_mat[47] = elMat_4_7;
-             _data_mat[48] = elMat_4_8;
-             _data_mat[49] = elMat_4_9;
-             _data_mat[50] = elMat_5_0;
-             _data_mat[51] = elMat_5_1;
-             _data_mat[52] = elMat_5_2;
-             _data_mat[53] = elMat_5_3;
-             _data_mat[54] = elMat_5_4;
-             _data_mat[55] = elMat_5_5;
-             _data_mat[56] = elMat_5_6;
-             _data_mat[57] = elMat_5_7;
-             _data_mat[58] = elMat_5_8;
-             _data_mat[59] = elMat_5_9;
-             _data_mat[60] = elMat_6_0;
-             _data_mat[61] = elMat_6_1;
-             _data_mat[62] = elMat_6_2;
-             _data_mat[63] = elMat_6_3;
-             _data_mat[64] = elMat_6_4;
-             _data_mat[65] = elMat_6_5;
-             _data_mat[66] = elMat_6_6;
-             _data_mat[67] = elMat_6_7;
-             _data_mat[68] = elMat_6_8;
-             _data_mat[69] = elMat_6_9;
-             _data_mat[70] = elMat_7_0;
-             _data_mat[71] = elMat_7_1;
-             _data_mat[72] = elMat_7_2;
-             _data_mat[73] = elMat_7_3;
-             _data_mat[74] = elMat_7_4;
-             _data_mat[75] = elMat_7_5;
-             _data_mat[76] = elMat_7_6;
-             _data_mat[77] = elMat_7_7;
-             _data_mat[78] = elMat_7_8;
-             _data_mat[79] = elMat_7_9;
-             _data_mat[80] = elMat_8_0;
-             _data_mat[81] = elMat_8_1;
-             _data_mat[82] = elMat_8_2;
-             _data_mat[83] = elMat_8_3;
-             _data_mat[84] = elMat_8_4;
-             _data_mat[85] = elMat_8_5;
-             _data_mat[86] = elMat_8_6;
-             _data_mat[87] = elMat_8_7;
-             _data_mat[88] = elMat_8_8;
-             _data_mat[89] = elMat_8_9;
-             _data_mat[90] = elMat_9_0;
-             _data_mat[91] = elMat_9_1;
-             _data_mat[92] = elMat_9_2;
-             _data_mat[93] = elMat_9_3;
-             _data_mat[94] = elMat_9_4;
-             _data_mat[95] = elMat_9_5;
-             _data_mat[96] = elMat_9_6;
-             _data_mat[97] = elMat_9_7;
-             _data_mat[98] = elMat_9_8;
-             _data_mat[99] = elMat_9_9;
+             _data_mat[0] = ((real_t)(elMat_0_0));
+             _data_mat[1] = ((real_t)(elMat_0_1));
+             _data_mat[2] = ((real_t)(elMat_0_2));
+             _data_mat[3] = ((real_t)(elMat_0_3));
+             _data_mat[4] = ((real_t)(elMat_0_4));
+             _data_mat[5] = ((real_t)(elMat_0_5));
+             _data_mat[6] = ((real_t)(elMat_0_6));
+             _data_mat[7] = ((real_t)(elMat_0_7));
+             _data_mat[8] = ((real_t)(elMat_0_8));
+             _data_mat[9] = ((real_t)(elMat_0_9));
+             _data_mat[10] = ((real_t)(elMat_1_0));
+             _data_mat[11] = ((real_t)(elMat_1_1));
+             _data_mat[12] = ((real_t)(elMat_1_2));
+             _data_mat[13] = ((real_t)(elMat_1_3));
+             _data_mat[14] = ((real_t)(elMat_1_4));
+             _data_mat[15] = ((real_t)(elMat_1_5));
+             _data_mat[16] = ((real_t)(elMat_1_6));
+             _data_mat[17] = ((real_t)(elMat_1_7));
+             _data_mat[18] = ((real_t)(elMat_1_8));
+             _data_mat[19] = ((real_t)(elMat_1_9));
+             _data_mat[20] = ((real_t)(elMat_2_0));
+             _data_mat[21] = ((real_t)(elMat_2_1));
+             _data_mat[22] = ((real_t)(elMat_2_2));
+             _data_mat[23] = ((real_t)(elMat_2_3));
+             _data_mat[24] = ((real_t)(elMat_2_4));
+             _data_mat[25] = ((real_t)(elMat_2_5));
+             _data_mat[26] = ((real_t)(elMat_2_6));
+             _data_mat[27] = ((real_t)(elMat_2_7));
+             _data_mat[28] = ((real_t)(elMat_2_8));
+             _data_mat[29] = ((real_t)(elMat_2_9));
+             _data_mat[30] = ((real_t)(elMat_3_0));
+             _data_mat[31] = ((real_t)(elMat_3_1));
+             _data_mat[32] = ((real_t)(elMat_3_2));
+             _data_mat[33] = ((real_t)(elMat_3_3));
+             _data_mat[34] = ((real_t)(elMat_3_4));
+             _data_mat[35] = ((real_t)(elMat_3_5));
+             _data_mat[36] = ((real_t)(elMat_3_6));
+             _data_mat[37] = ((real_t)(elMat_3_7));
+             _data_mat[38] = ((real_t)(elMat_3_8));
+             _data_mat[39] = ((real_t)(elMat_3_9));
+             _data_mat[40] = ((real_t)(elMat_4_0));
+             _data_mat[41] = ((real_t)(elMat_4_1));
+             _data_mat[42] = ((real_t)(elMat_4_2));
+             _data_mat[43] = ((real_t)(elMat_4_3));
+             _data_mat[44] = ((real_t)(elMat_4_4));
+             _data_mat[45] = ((real_t)(elMat_4_5));
+             _data_mat[46] = ((real_t)(elMat_4_6));
+             _data_mat[47] = ((real_t)(elMat_4_7));
+             _data_mat[48] = ((real_t)(elMat_4_8));
+             _data_mat[49] = ((real_t)(elMat_4_9));
+             _data_mat[50] = ((real_t)(elMat_5_0));
+             _data_mat[51] = ((real_t)(elMat_5_1));
+             _data_mat[52] = ((real_t)(elMat_5_2));
+             _data_mat[53] = ((real_t)(elMat_5_3));
+             _data_mat[54] = ((real_t)(elMat_5_4));
+             _data_mat[55] = ((real_t)(elMat_5_5));
+             _data_mat[56] = ((real_t)(elMat_5_6));
+             _data_mat[57] = ((real_t)(elMat_5_7));
+             _data_mat[58] = ((real_t)(elMat_5_8));
+             _data_mat[59] = ((real_t)(elMat_5_9));
+             _data_mat[60] = ((real_t)(elMat_6_0));
+             _data_mat[61] = ((real_t)(elMat_6_1));
+             _data_mat[62] = ((real_t)(elMat_6_2));
+             _data_mat[63] = ((real_t)(elMat_6_3));
+             _data_mat[64] = ((real_t)(elMat_6_4));
+             _data_mat[65] = ((real_t)(elMat_6_5));
+             _data_mat[66] = ((real_t)(elMat_6_6));
+             _data_mat[67] = ((real_t)(elMat_6_7));
+             _data_mat[68] = ((real_t)(elMat_6_8));
+             _data_mat[69] = ((real_t)(elMat_6_9));
+             _data_mat[70] = ((real_t)(elMat_7_0));
+             _data_mat[71] = ((real_t)(elMat_7_1));
+             _data_mat[72] = ((real_t)(elMat_7_2));
+             _data_mat[73] = ((real_t)(elMat_7_3));
+             _data_mat[74] = ((real_t)(elMat_7_4));
+             _data_mat[75] = ((real_t)(elMat_7_5));
+             _data_mat[76] = ((real_t)(elMat_7_6));
+             _data_mat[77] = ((real_t)(elMat_7_7));
+             _data_mat[78] = ((real_t)(elMat_7_8));
+             _data_mat[79] = ((real_t)(elMat_7_9));
+             _data_mat[80] = ((real_t)(elMat_8_0));
+             _data_mat[81] = ((real_t)(elMat_8_1));
+             _data_mat[82] = ((real_t)(elMat_8_2));
+             _data_mat[83] = ((real_t)(elMat_8_3));
+             _data_mat[84] = ((real_t)(elMat_8_4));
+             _data_mat[85] = ((real_t)(elMat_8_5));
+             _data_mat[86] = ((real_t)(elMat_8_6));
+             _data_mat[87] = ((real_t)(elMat_8_7));
+             _data_mat[88] = ((real_t)(elMat_8_8));
+             _data_mat[89] = ((real_t)(elMat_8_9));
+             _data_mat[90] = ((real_t)(elMat_9_0));
+             _data_mat[91] = ((real_t)(elMat_9_1));
+             _data_mat[92] = ((real_t)(elMat_9_2));
+             _data_mat[93] = ((real_t)(elMat_9_3));
+             _data_mat[94] = ((real_t)(elMat_9_4));
+             _data_mat[95] = ((real_t)(elMat_9_5));
+             _data_mat[96] = ((real_t)(elMat_9_6));
+             _data_mat[97] = ((real_t)(elMat_9_7));
+             _data_mat[98] = ((real_t)(elMat_9_8));
+             _data_mat[99] = ((real_t)(elMat_9_9));
          
          
              mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );