diff --git a/generate/generate.py b/generate/generate.py
index 1c1f37aba02a0a25648e9662585b43da2018911e..936ed227ce1a0058f86e1cb91a2c61706b1c905f 100644
--- a/generate/generate.py
+++ b/generate/generate.py
@@ -258,6 +258,7 @@ def generate_operator(
     fe_spaces = {
         "P1": function_space.LagrangianFunctionSpace(1, symbolizer),
         "P2": function_space.LagrangianFunctionSpace(2, symbolizer),
+        "P2Vector": function_space.TensorialVectorFunctionSpace(function_space.LagrangianFunctionSpace(2, symbolizer)),
         "N1E1": function_space.N1E1Space(symbolizer),
     }
     geometries = {
diff --git a/generate/requirements.txt b/generate/requirements.txt
index f810065081434a240b51010339d460e1b68e2be2..20411daf858bf87d78c17473f249eb7a1491c46b 100644
--- a/generate/requirements.txt
+++ b/generate/requirements.txt
@@ -1,5 +1,5 @@
 --extra-index-url https://test.pypi.org/simple/
 
-hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog
+hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@1e6c4081b8c3a85e7a4632241684af9f5c74fe2e
 tomli >= 1.1.0 ; python_version < "3.11"
 clang-format
diff --git a/operators/CMakeLists.txt b/operators/CMakeLists.txt
index 2dfec301ba1a82f3b62a2b24dfa7b4b29825626e..b8a33d29263fbe077fe4628a9ddde5760822171c 100644
--- a/operators/CMakeLists.txt
+++ b/operators/CMakeLists.txt
@@ -13,6 +13,7 @@ add_subdirectory(div_k_grad)
 add_subdirectory(divergence)
 add_subdirectory(epsilon)
 add_subdirectory(full_stokes)
+add_subdirectory(grad_rho_by_rho_dot_u)
 add_subdirectory(gradient)
 add_subdirectory(k_mass)
 add_subdirectory(mass)
diff --git a/operators/grad_rho_by_rho_dot_u/CMakeLists.txt b/operators/grad_rho_by_rho_dot_u/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7660ec9092fcaf95a21c18924db74024e203ef9e
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/CMakeLists.txt
@@ -0,0 +1,30 @@
+add_library( opgen-grad_rho_by_rho_dot_u
+
+   P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp
+   P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp
+   P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp
+   P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp
+   P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp
+   P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp
+)
+
+target_sources(opgen-grad_rho_by_rho_dot_u PRIVATE
+
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp
+   noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp
+)
+
+if (HYTEG_BUILD_WITH_PETSC)
+   target_link_libraries(opgen-grad_rho_by_rho_dot_u PUBLIC PETSc::PETSc)
+endif ()
+if (WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT)
+    target_compile_features(opgen-grad_rho_by_rho_dot_u PUBLIC cxx_std_23)
+else ()
+    target_compile_features(opgen-grad_rho_by_rho_dot_u PUBLIC cxx_std_17)
+endif ()
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..43cad945b2cf3c72d623df73321bc1d24a9dec36
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp
@@ -0,0 +1,401 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe
+// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a
+// warning in an internal standard library header (bits/stl_algobase.h). As a
+// workaround, we disable the warning and include this header indirectly through
+// a public header.
+#include <waLBerlaDefinitions.h>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnonnull"
+#endif
+#include <cmath>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic pop
+#endif
+
+#include "P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+P2VectorToP1ElementwiseGradRhoByRhoDotU::P2VectorToP1ElementwiseGradRhoByRhoDotU(
+    const std::shared_ptr< PrimitiveStorage >& storage,
+    size_t                                     minLevel,
+    size_t                                     maxLevel,
+    const P2Function< real_t >&                _rho )
+: Operator( storage, minLevel, maxLevel )
+, rho( _rho )
+{}
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply( const P2VectorFunction< real_t >& src,
+                                                     const P1Function< real_t >&       dst,
+                                                     uint_t                            level,
+                                                     DoFType                           flag,
+                                                     UpdateType                        updateType ) const
+{
+   this->startTiming( "apply" );
+
+   // Make sure that halos are up-to-date
+   this->timingTree_->start( "pre-communication" );
+   if ( this->storage_->hasGlobalCells() )
+   {
+      // Note that the order of communication is important, since the face -> cell communication may overwrite
+      // parts of the halos that carry the macro-vertex and macro-edge unknowns.
+      src[0].communicate< Face, Cell >( level );
+      src[0].communicate< Edge, Cell >( level );
+      src[0].communicate< Vertex, Cell >( level );
+      src[1].communicate< Face, Cell >( level );
+      src[1].communicate< Edge, Cell >( level );
+      src[1].communicate< Vertex, Cell >( level );
+      src[2].communicate< Face, Cell >( level );
+      src[2].communicate< Edge, Cell >( level );
+      src[2].communicate< Vertex, Cell >( level );
+      rho.communicate< Face, Cell >( level );
+      rho.communicate< Edge, Cell >( level );
+      rho.communicate< Vertex, Cell >( level );
+   }
+   else
+   {
+      communication::syncVectorFunctionBetweenPrimitives( src, level, communication::syncDirection_t::LOW2HIGH );
+      communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH );
+   }
+   this->timingTree_->stop( "pre-communication" );
+
+   if ( updateType == Replace )
+   {
+      // We need to zero the destination array (including halos).
+      // 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( walberla::numeric_cast< real_t >( 0 ), level, flag );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      for ( auto& it : storage_->getCells() )
+      {
+         Cell& cell = *it.second;
+
+         // get hold of the actual numerical data in the functions
+         real_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_0   = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_1   = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_2   = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         real_t* _data_dst       = cell.getData( dst.getCellDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         // Zero out dst halos only
+         //
+         // This is also necessary when using update type == Add.
+         // During additive comm we then skip zeroing the data on the lower-dim primitives.
+         for ( const auto& idx : vertexdof::macrocell::Iterator( level ) )
+         {
+            if ( !vertexdof::macrocell::isOnCellFace( idx, level ).empty() )
+            {
+               auto arrayIdx       = vertexdof::macrocell::index( level, idx.x(), idx.y(), idx.z() );
+               _data_dst[arrayIdx] = real_t( 0 );
+            }
+         }
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) cell.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) cell.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_0comp2     = (real_t) cell.getCoordinates()[0][2];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) cell.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) cell.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_1comp2     = (real_t) cell.getCoordinates()[1][2];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) cell.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) cell.getCoordinates()[2][1];
+         const real_t macro_vertex_coord_id_2comp2     = (real_t) cell.getCoordinates()[2][2];
+         const real_t macro_vertex_coord_id_3comp0     = (real_t) cell.getCoordinates()[3][0];
+         const real_t macro_vertex_coord_id_3comp1     = (real_t) cell.getCoordinates()[3][1];
+         const real_t macro_vertex_coord_id_3comp2     = (real_t) cell.getCoordinates()[3][2];
+
+         this->timingTree_->start( "kernel" );
+
+         apply_macro_3D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_edge_2,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             _data_src_vertex_2,
+             macro_vertex_coord_id_0comp0,
+             macro_vertex_coord_id_0comp1,
+             macro_vertex_coord_id_0comp2,
+             macro_vertex_coord_id_1comp0,
+             macro_vertex_coord_id_1comp1,
+             macro_vertex_coord_id_1comp2,
+             macro_vertex_coord_id_2comp0,
+             macro_vertex_coord_id_2comp1,
+             macro_vertex_coord_id_2comp2,
+             macro_vertex_coord_id_3comp0,
+             macro_vertex_coord_id_3comp1,
+             macro_vertex_coord_id_3comp2,
+             micro_edges_per_macro_edge,
+             micro_edges_per_macro_edge_float );
+         this->timingTree_->stop( "kernel" );
+      }
+
+      // Push result to lower-dimensional primitives
+      //
+      this->timingTree_->start( "post-communication" );
+      // Note: We could avoid communication here by implementing the apply() also for the respective
+      //       lower dimensional primitives!
+      dst.communicateAdditively< Cell, Face >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Cell, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Cell, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      this->timingTree_->stop( "post-communication" );
+   }
+   else
+   {
+      for ( auto& it : storage_->getFaces() )
+      {
+         Face& face = *it.second;
+
+         // get hold of the actual numerical data in the functions
+         real_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_edge_0   = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_edge_1   = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         real_t* _data_dst       = face.getData( dst.getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         // Zero out dst halos only
+         //
+         // This is also necessary when using update type == Add.
+         // During additive comm we then skip zeroing the data on the lower-dim primitives.
+         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_t( 0 );
+            }
+         }
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) face.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) face.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) face.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) face.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) face.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) face.getCoordinates()[2][1];
+
+         this->timingTree_->start( "kernel" );
+
+         apply_macro_2D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             macro_vertex_coord_id_0comp0,
+             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 );
+         this->timingTree_->stop( "kernel" );
+      }
+
+      // Push result to lower-dimensional primitives
+      //
+      this->timingTree_->start( "post-communication" );
+      // Note: We could avoid communication here by implementing the apply() also for the respective
+      //       lower dimensional primitives!
+      dst.communicateAdditively< Face, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Face, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      this->timingTree_->stop( "post-communication" );
+   }
+
+   this->stopTiming( "apply" );
+}
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                                                        const P2VectorFunction< idx_t >&            src,
+                                                        const P1Function< idx_t >&                  dst,
+                                                        uint_t                                      level,
+                                                        DoFType                                     flag ) const
+{
+   this->startTiming( "toMatrix" );
+
+   // We currently ignore the flag provided!
+   if ( flag != All )
+   {
+      WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      this->timingTree_->start( "pre-communication" );
+      rho.communicate< Face, Cell >( level );
+      rho.communicate< Edge, Cell >( level );
+      rho.communicate< Vertex, Cell >( level );
+      this->timingTree_->stop( "pre-communication" );
+
+      for ( auto& it : storage_->getCells() )
+      {
+         Cell& cell = *it.second;
+
+         // get hold of the actual numerical data
+         idx_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_0   = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_1   = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_2   = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         idx_t*  _data_dst       = cell.getData( dst.getCellDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) cell.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) cell.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_0comp2     = (real_t) cell.getCoordinates()[0][2];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) cell.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) cell.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_1comp2     = (real_t) cell.getCoordinates()[1][2];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) cell.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) cell.getCoordinates()[2][1];
+         const real_t macro_vertex_coord_id_2comp2     = (real_t) cell.getCoordinates()[2][2];
+         const real_t macro_vertex_coord_id_3comp0     = (real_t) cell.getCoordinates()[3][0];
+         const real_t macro_vertex_coord_id_3comp1     = (real_t) cell.getCoordinates()[3][1];
+         const real_t macro_vertex_coord_id_3comp2     = (real_t) cell.getCoordinates()[3][2];
+
+         this->timingTree_->start( "kernel" );
+
+         toMatrix_macro_3D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_edge_2,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             _data_src_vertex_2,
+             macro_vertex_coord_id_0comp0,
+             macro_vertex_coord_id_0comp1,
+             macro_vertex_coord_id_0comp2,
+             macro_vertex_coord_id_1comp0,
+             macro_vertex_coord_id_1comp1,
+             macro_vertex_coord_id_1comp2,
+             macro_vertex_coord_id_2comp0,
+             macro_vertex_coord_id_2comp1,
+             macro_vertex_coord_id_2comp2,
+             macro_vertex_coord_id_3comp0,
+             macro_vertex_coord_id_3comp1,
+             macro_vertex_coord_id_3comp2,
+             mat,
+             micro_edges_per_macro_edge,
+             micro_edges_per_macro_edge_float );
+         this->timingTree_->stop( "kernel" );
+      }
+   }
+   else
+   {
+      this->timingTree_->start( "pre-communication" );
+      communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH );
+      this->timingTree_->stop( "pre-communication" );
+
+      for ( auto& it : storage_->getFaces() )
+      {
+         Face& face = *it.second;
+
+         // get hold of the actual numerical data
+         idx_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_edge_0   = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_edge_1   = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         idx_t*  _data_dst       = face.getData( dst.getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) face.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) face.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) face.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) face.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) face.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) face.getCoordinates()[2][1];
+
+         this->timingTree_->start( "kernel" );
+
+         toMatrix_macro_2D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             macro_vertex_coord_id_0comp0,
+             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 );
+         this->timingTree_->stop( "kernel" );
+      }
+   }
+   this->stopTiming( "toMatrix" );
+}
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..1487e6b342c9b006323ac864a2ff5f895670483c
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+#pragma once
+
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
+#include "hyteg/operators/Operator.hpp"
+#include "hyteg/p1functionspace/P1Function.hpp"
+#include "hyteg/p2functionspace/P2Function.hpp"
+#include "hyteg/p2functionspace/P2VectorFunction.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+/// RHS operator for the frozen velocity approach.
+///
+/// Geometry map: IdentityMap
+///
+/// Weak formulation
+///
+///     u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2))
+///     v: test function  (space: Lagrange, degree: 1)
+///     rho: coefficient    (space: Lagrange, degree: 2)
+///
+
+class P2VectorToP1ElementwiseGradRhoByRhoDotU : public Operator< P2VectorFunction< real_t >, P1Function< real_t > >
+{
+ public:
+   P2VectorToP1ElementwiseGradRhoByRhoDotU( const std::shared_ptr< PrimitiveStorage >& storage,
+                                            size_t                                     minLevel,
+                                            size_t                                     maxLevel,
+                                            const P2Function< real_t >&                _rho );
+
+   void apply( const P2VectorFunction< real_t >& src,
+               const P1Function< real_t >&       dst,
+               uint_t                            level,
+               DoFType                           flag,
+               UpdateType                        updateType = Replace ) const;
+
+   void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                  const P2VectorFunction< idx_t >&            src,
+                  const P1Function< idx_t >&                  dst,
+                  uint_t                                      level,
+                  DoFType                                     flag ) const;
+
+ protected:
+ private:
+   /// Kernel type: apply
+   /// - quadrature rule: Dunavant 3 | points: 4, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    356     380      16       0      0              0                 0              0
+   void apply_macro_2D( real_t* RESTRICT _data_dst,
+                        real_t* RESTRICT _data_rhoEdge,
+                        real_t* RESTRICT _data_rhoVertex,
+                        real_t* RESTRICT _data_src_edge_0,
+                        real_t* RESTRICT _data_src_edge_1,
+                        real_t* RESTRICT _data_src_vertex_0,
+                        real_t* RESTRICT _data_src_vertex_1,
+                        real_t           macro_vertex_coord_id_0comp0,
+                        real_t           macro_vertex_coord_id_0comp1,
+                        real_t           macro_vertex_coord_id_1comp0,
+                        real_t           macro_vertex_coord_id_1comp1,
+                        real_t           macro_vertex_coord_id_2comp0,
+                        real_t           macro_vertex_coord_id_2comp1,
+                        int64_t          micro_edges_per_macro_edge,
+                        real_t           micro_edges_per_macro_edge_float ) const;
+   /// Kernel type: apply
+   /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///   1153    1162      41       0      0              0                 0              0
+   void apply_macro_3D( real_t* RESTRICT _data_dst,
+                        real_t* RESTRICT _data_rhoEdge,
+                        real_t* RESTRICT _data_rhoVertex,
+                        real_t* RESTRICT _data_src_edge_0,
+                        real_t* RESTRICT _data_src_edge_1,
+                        real_t* RESTRICT _data_src_edge_2,
+                        real_t* RESTRICT _data_src_vertex_0,
+                        real_t* RESTRICT _data_src_vertex_1,
+                        real_t* RESTRICT _data_src_vertex_2,
+                        real_t           macro_vertex_coord_id_0comp0,
+                        real_t           macro_vertex_coord_id_0comp1,
+                        real_t           macro_vertex_coord_id_0comp2,
+                        real_t           macro_vertex_coord_id_1comp0,
+                        real_t           macro_vertex_coord_id_1comp1,
+                        real_t           macro_vertex_coord_id_1comp2,
+                        real_t           macro_vertex_coord_id_2comp0,
+                        real_t           macro_vertex_coord_id_2comp1,
+                        real_t           macro_vertex_coord_id_2comp2,
+                        real_t           macro_vertex_coord_id_3comp0,
+                        real_t           macro_vertex_coord_id_3comp1,
+                        real_t           macro_vertex_coord_id_3comp2,
+                        int64_t          micro_edges_per_macro_edge,
+                        real_t           micro_edges_per_macro_edge_float ) const;
+   /// Kernel type: toMatrix
+   /// - quadrature rule: Dunavant 3 | points: 4, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    320     344      16       0      0              0                 0              3
+   void toMatrix_macro_2D( idx_t* RESTRICT                      _data_dst,
+                           real_t* RESTRICT                     _data_rhoEdge,
+                           real_t* RESTRICT                     _data_rhoVertex,
+                           idx_t* RESTRICT                      _data_src_edge_0,
+                           idx_t* RESTRICT                      _data_src_edge_1,
+                           idx_t* RESTRICT                      _data_src_vertex_0,
+                           idx_t* RESTRICT                      _data_src_vertex_1,
+                           real_t                               macro_vertex_coord_id_0comp0,
+                           real_t                               macro_vertex_coord_id_0comp1,
+                           real_t                               macro_vertex_coord_id_1comp0,
+                           real_t                               macro_vertex_coord_id_1comp1,
+                           real_t                               macro_vertex_coord_id_2comp0,
+                           real_t                               macro_vertex_coord_id_2comp1,
+                           std::shared_ptr< SparseMatrixProxy > mat,
+                           int64_t                              micro_edges_per_macro_edge,
+                           real_t                               micro_edges_per_macro_edge_float ) const;
+   /// Kernel type: toMatrix
+   /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///   1033    1042      41       0      0              0                 0              3
+   void toMatrix_macro_3D( idx_t* RESTRICT                      _data_dst,
+                           real_t* RESTRICT                     _data_rhoEdge,
+                           real_t* RESTRICT                     _data_rhoVertex,
+                           idx_t* RESTRICT                      _data_src_edge_0,
+                           idx_t* RESTRICT                      _data_src_edge_1,
+                           idx_t* RESTRICT                      _data_src_edge_2,
+                           idx_t* RESTRICT                      _data_src_vertex_0,
+                           idx_t* RESTRICT                      _data_src_vertex_1,
+                           idx_t* RESTRICT                      _data_src_vertex_2,
+                           real_t                               macro_vertex_coord_id_0comp0,
+                           real_t                               macro_vertex_coord_id_0comp1,
+                           real_t                               macro_vertex_coord_id_0comp2,
+                           real_t                               macro_vertex_coord_id_1comp0,
+                           real_t                               macro_vertex_coord_id_1comp1,
+                           real_t                               macro_vertex_coord_id_1comp2,
+                           real_t                               macro_vertex_coord_id_2comp0,
+                           real_t                               macro_vertex_coord_id_2comp1,
+                           real_t                               macro_vertex_coord_id_2comp2,
+                           real_t                               macro_vertex_coord_id_3comp0,
+                           real_t                               macro_vertex_coord_id_3comp1,
+                           real_t                               macro_vertex_coord_id_3comp2,
+                           std::shared_ptr< SparseMatrixProxy > mat,
+                           int64_t                              micro_edges_per_macro_edge,
+                           real_t                               micro_edges_per_macro_edge_float ) const;
+
+   P2Function< real_t > rho;
+};
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2571420005e230aa4c5a9d18f6fc44ca232d8ddb
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp
@@ -0,0 +1,284 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe
+// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a
+// warning in an internal standard library header (bits/stl_algobase.h). As a
+// workaround, we disable the warning and include this header indirectly through
+// a public header.
+#include <waLBerlaDefinitions.h>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnonnull"
+#endif
+#include <cmath>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic pop
+#endif
+
+#include "P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap(
+    const std::shared_ptr< PrimitiveStorage >& storage,
+    size_t                                     minLevel,
+    size_t                                     maxLevel,
+    const P2Function< real_t >&                _rho )
+: Operator( storage, minLevel, maxLevel )
+, rho( _rho )
+{}
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::apply( const P2VectorFunction< real_t >& src,
+                                                               const P1Function< real_t >&       dst,
+                                                               uint_t                            level,
+                                                               DoFType                           flag,
+                                                               UpdateType                        updateType ) const
+{
+   this->startTiming( "apply" );
+
+   // Make sure that halos are up-to-date
+   this->timingTree_->start( "pre-communication" );
+   if ( this->storage_->hasGlobalCells() )
+   {
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   else
+   {
+      communication::syncVectorFunctionBetweenPrimitives( src, level, communication::syncDirection_t::LOW2HIGH );
+      communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH );
+   }
+   this->timingTree_->stop( "pre-communication" );
+
+   if ( updateType == Replace )
+   {
+      // We need to zero the destination array (including halos).
+      // 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( walberla::numeric_cast< real_t >( 0 ), level, flag );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   else
+   {
+      for ( auto& it : storage_->getFaces() )
+      {
+         Face& face = *it.second;
+
+         // get hold of the actual numerical data in the functions
+         real_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_edge_0   = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src_edge_1   = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         real_t* _data_dst       = face.getData( dst.getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         // Zero out dst halos only
+         //
+         // This is also necessary when using update type == Add.
+         // During additive comm we then skip zeroing the data on the lower-dim primitives.
+         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_t( 0 );
+            }
+         }
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) face.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) face.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) face.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) face.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) face.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) face.getCoordinates()[2][1];
+         WALBERLA_CHECK_NOT_NULLPTR(
+             std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() ),
+             "This operator requires the AnnulusMap to be registered as GeometryMap on every macro-cell." )
+         real_t radRefVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRefVertex();
+         real_t radRayVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRayVertex();
+         real_t refVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[0];
+         real_t rayVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[0];
+         real_t thrVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[0];
+         real_t refVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[1];
+         real_t rayVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[1];
+         real_t thrVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[1];
+
+         this->timingTree_->start( "kernel" );
+
+         apply_macro_2D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             macro_vertex_coord_id_0comp0,
+             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,
+             radRayVertex,
+             radRefVertex,
+             rayVertex_0,
+             rayVertex_1,
+             refVertex_0,
+             refVertex_1,
+             thrVertex_0,
+             thrVertex_1 );
+         this->timingTree_->stop( "kernel" );
+      }
+
+      // Push result to lower-dimensional primitives
+      //
+      this->timingTree_->start( "post-communication" );
+      // Note: We could avoid communication here by implementing the apply() also for the respective
+      //       lower dimensional primitives!
+      dst.communicateAdditively< Face, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Face, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      this->timingTree_->stop( "post-communication" );
+   }
+
+   this->stopTiming( "apply" );
+}
+void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                                                                  const P2VectorFunction< idx_t >&            src,
+                                                                  const P1Function< idx_t >&                  dst,
+                                                                  uint_t                                      level,
+                                                                  DoFType                                     flag ) const
+{
+   this->startTiming( "toMatrix" );
+
+   // We currently ignore the flag provided!
+   if ( flag != All )
+   {
+      WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      this->timingTree_->start( "pre-communication" );
+      rho.communicate< Face, Cell >( level );
+      rho.communicate< Edge, Cell >( level );
+      rho.communicate< Vertex, Cell >( level );
+      this->timingTree_->stop( "pre-communication" );
+
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   else
+   {
+      this->timingTree_->start( "pre-communication" );
+      communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH );
+      this->timingTree_->stop( "pre-communication" );
+
+      for ( auto& it : storage_->getFaces() )
+      {
+         Face& face = *it.second;
+
+         // get hold of the actual numerical data
+         idx_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_edge_0   = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src_edge_1   = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         idx_t*  _data_dst       = face.getData( dst.getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) face.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) face.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) face.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) face.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) face.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) face.getCoordinates()[2][1];
+         WALBERLA_CHECK_NOT_NULLPTR(
+             std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() ),
+             "This operator requires the AnnulusMap to be registered as GeometryMap on every macro-cell." )
+         real_t radRefVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRefVertex();
+         real_t radRayVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRayVertex();
+         real_t refVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[0];
+         real_t rayVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[0];
+         real_t thrVertex_0  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[0];
+         real_t refVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[1];
+         real_t rayVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[1];
+         real_t thrVertex_1  = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[1];
+
+         this->timingTree_->start( "kernel" );
+
+         toMatrix_macro_2D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             macro_vertex_coord_id_0comp0,
+             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,
+             radRayVertex,
+             radRefVertex,
+             rayVertex_0,
+             rayVertex_1,
+             refVertex_0,
+             refVertex_1,
+             thrVertex_0,
+             thrVertex_1 );
+         this->timingTree_->stop( "kernel" );
+      }
+   }
+   this->stopTiming( "toMatrix" );
+}
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..7b5bb7c13a1f5f3d6e02f307b8d5024829f455d4
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+#pragma once
+
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
+#include "hyteg/geometry/AnnulusMap.hpp"
+#include "hyteg/operators/Operator.hpp"
+#include "hyteg/p1functionspace/P1Function.hpp"
+#include "hyteg/p2functionspace/P2Function.hpp"
+#include "hyteg/p2functionspace/P2VectorFunction.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+/// RHS operator for the frozen velocity approach.
+///
+/// Geometry map: AnnulusMap
+///
+/// Weak formulation
+///
+///     u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2))
+///     v: test function  (space: Lagrange, degree: 1)
+///     rho: coefficient    (space: Lagrange, degree: 2)
+///
+
+class P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap : public Operator< P2VectorFunction< real_t >, P1Function< real_t > >
+{
+ public:
+   P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap( const std::shared_ptr< PrimitiveStorage >& storage,
+                                                      size_t                                     minLevel,
+                                                      size_t                                     maxLevel,
+                                                      const P2Function< real_t >&                _rho );
+
+   void apply( const P2VectorFunction< real_t >& src,
+               const P1Function< real_t >&       dst,
+               uint_t                            level,
+               DoFType                           flag,
+               UpdateType                        updateType = Replace ) const;
+
+   void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                  const P2VectorFunction< idx_t >&            src,
+                  const P1Function< idx_t >&                  dst,
+                  uint_t                                      level,
+                  DoFType                                     flag ) const;
+
+ protected:
+ private:
+   /// Kernel type: apply
+   /// - quadrature rule: Dunavant 3 | points: 4, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    560     732      24      12      0              0                 0              0
+   void apply_macro_2D( real_t* RESTRICT _data_dst,
+                        real_t* RESTRICT _data_rhoEdge,
+                        real_t* RESTRICT _data_rhoVertex,
+                        real_t* RESTRICT _data_src_edge_0,
+                        real_t* RESTRICT _data_src_edge_1,
+                        real_t* RESTRICT _data_src_vertex_0,
+                        real_t* RESTRICT _data_src_vertex_1,
+                        real_t           macro_vertex_coord_id_0comp0,
+                        real_t           macro_vertex_coord_id_0comp1,
+                        real_t           macro_vertex_coord_id_1comp0,
+                        real_t           macro_vertex_coord_id_1comp1,
+                        real_t           macro_vertex_coord_id_2comp0,
+                        real_t           macro_vertex_coord_id_2comp1,
+                        int64_t          micro_edges_per_macro_edge,
+                        real_t           micro_edges_per_macro_edge_float,
+                        real_t           radRayVertex,
+                        real_t           radRefVertex,
+                        real_t           rayVertex_0,
+                        real_t           rayVertex_1,
+                        real_t           refVertex_0,
+                        real_t           refVertex_1,
+                        real_t           thrVertex_0,
+                        real_t           thrVertex_1 ) const;
+   /// Kernel type: toMatrix
+   /// - quadrature rule: Dunavant 3 | points: 4, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    524     696      24      12      0              0                 0              3
+   void toMatrix_macro_2D( idx_t* RESTRICT                      _data_dst,
+                           real_t* RESTRICT                     _data_rhoEdge,
+                           real_t* RESTRICT                     _data_rhoVertex,
+                           idx_t* RESTRICT                      _data_src_edge_0,
+                           idx_t* RESTRICT                      _data_src_edge_1,
+                           idx_t* RESTRICT                      _data_src_vertex_0,
+                           idx_t* RESTRICT                      _data_src_vertex_1,
+                           real_t                               macro_vertex_coord_id_0comp0,
+                           real_t                               macro_vertex_coord_id_0comp1,
+                           real_t                               macro_vertex_coord_id_1comp0,
+                           real_t                               macro_vertex_coord_id_1comp1,
+                           real_t                               macro_vertex_coord_id_2comp0,
+                           real_t                               macro_vertex_coord_id_2comp1,
+                           std::shared_ptr< SparseMatrixProxy > mat,
+                           int64_t                              micro_edges_per_macro_edge,
+                           real_t                               micro_edges_per_macro_edge_float,
+                           real_t                               radRayVertex,
+                           real_t                               radRefVertex,
+                           real_t                               rayVertex_0,
+                           real_t                               rayVertex_1,
+                           real_t                               refVertex_0,
+                           real_t                               refVertex_1,
+                           real_t                               thrVertex_0,
+                           real_t                               thrVertex_1 ) const;
+
+   P2Function< real_t > rho;
+};
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2a68954c8e4dd9640d90c9232b403c649fd3406c
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp
@@ -0,0 +1,353 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe
+// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a
+// warning in an internal standard library header (bits/stl_algobase.h). As a
+// workaround, we disable the warning and include this header indirectly through
+// a public header.
+#include <waLBerlaDefinitions.h>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnonnull"
+#endif
+#include <cmath>
+#ifdef WALBERLA_CXX_COMPILER_IS_GNU
+#pragma GCC diagnostic pop
+#endif
+
+#include "P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap(
+    const std::shared_ptr< PrimitiveStorage >& storage,
+    size_t                                     minLevel,
+    size_t                                     maxLevel,
+    const P2Function< real_t >&                _rho )
+: Operator( storage, minLevel, maxLevel )
+, rho( _rho )
+{}
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::apply( const P2VectorFunction< real_t >& src,
+                                                                        const P1Function< real_t >&       dst,
+                                                                        uint_t                            level,
+                                                                        DoFType                           flag,
+                                                                        UpdateType                        updateType ) const
+{
+   this->startTiming( "apply" );
+
+   // Make sure that halos are up-to-date
+   this->timingTree_->start( "pre-communication" );
+   if ( this->storage_->hasGlobalCells() )
+   {
+      // Note that the order of communication is important, since the face -> cell communication may overwrite
+      // parts of the halos that carry the macro-vertex and macro-edge unknowns.
+      src[0].communicate< Face, Cell >( level );
+      src[0].communicate< Edge, Cell >( level );
+      src[0].communicate< Vertex, Cell >( level );
+      src[1].communicate< Face, Cell >( level );
+      src[1].communicate< Edge, Cell >( level );
+      src[1].communicate< Vertex, Cell >( level );
+      src[2].communicate< Face, Cell >( level );
+      src[2].communicate< Edge, Cell >( level );
+      src[2].communicate< Vertex, Cell >( level );
+      rho.communicate< Face, Cell >( level );
+      rho.communicate< Edge, Cell >( level );
+      rho.communicate< Vertex, Cell >( level );
+   }
+   else
+   {
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   this->timingTree_->stop( "pre-communication" );
+
+   if ( updateType == Replace )
+   {
+      // We need to zero the destination array (including halos).
+      // 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( walberla::numeric_cast< real_t >( 0 ), level, flag );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      for ( auto& it : storage_->getCells() )
+      {
+         Cell& cell = *it.second;
+
+         // get hold of the actual numerical data in the functions
+         real_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_0   = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_1   = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_src_edge_2   = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         real_t* _data_dst       = cell.getData( dst.getCellDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         // Zero out dst halos only
+         //
+         // This is also necessary when using update type == Add.
+         // During additive comm we then skip zeroing the data on the lower-dim primitives.
+         for ( const auto& idx : vertexdof::macrocell::Iterator( level ) )
+         {
+            if ( !vertexdof::macrocell::isOnCellFace( idx, level ).empty() )
+            {
+               auto arrayIdx       = vertexdof::macrocell::index( level, idx.x(), idx.y(), idx.z() );
+               _data_dst[arrayIdx] = real_t( 0 );
+            }
+         }
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) cell.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) cell.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_0comp2     = (real_t) cell.getCoordinates()[0][2];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) cell.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) cell.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_1comp2     = (real_t) cell.getCoordinates()[1][2];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) cell.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) cell.getCoordinates()[2][1];
+         const real_t macro_vertex_coord_id_2comp2     = (real_t) cell.getCoordinates()[2][2];
+         const real_t macro_vertex_coord_id_3comp0     = (real_t) cell.getCoordinates()[3][0];
+         const real_t macro_vertex_coord_id_3comp1     = (real_t) cell.getCoordinates()[3][1];
+         const real_t macro_vertex_coord_id_3comp2     = (real_t) cell.getCoordinates()[3][2];
+         WALBERLA_CHECK_NOT_NULLPTR(
+             std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() ),
+             "This operator requires the IcosahedralShellMap to be registered as GeometryMap on every macro-cell." )
+         real_t radRefVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRefVertex();
+         real_t radRayVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRayVertex();
+         real_t refVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[0];
+         real_t rayVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[0];
+         real_t thrVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[0];
+         real_t forVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[0];
+         real_t refVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[1];
+         real_t rayVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[1];
+         real_t thrVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[1];
+         real_t forVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[1];
+         real_t refVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[2];
+         real_t rayVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[2];
+         real_t thrVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[2];
+         real_t forVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[2];
+
+         this->timingTree_->start( "kernel" );
+
+         apply_macro_3D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_edge_2,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             _data_src_vertex_2,
+             forVertex_0,
+             forVertex_1,
+             forVertex_2,
+             macro_vertex_coord_id_0comp0,
+             macro_vertex_coord_id_0comp1,
+             macro_vertex_coord_id_0comp2,
+             macro_vertex_coord_id_1comp0,
+             macro_vertex_coord_id_1comp1,
+             macro_vertex_coord_id_1comp2,
+             macro_vertex_coord_id_2comp0,
+             macro_vertex_coord_id_2comp1,
+             macro_vertex_coord_id_2comp2,
+             macro_vertex_coord_id_3comp0,
+             macro_vertex_coord_id_3comp1,
+             macro_vertex_coord_id_3comp2,
+             micro_edges_per_macro_edge,
+             micro_edges_per_macro_edge_float,
+             radRayVertex,
+             radRefVertex,
+             rayVertex_0,
+             rayVertex_1,
+             rayVertex_2,
+             refVertex_0,
+             refVertex_1,
+             refVertex_2,
+             thrVertex_0,
+             thrVertex_1,
+             thrVertex_2 );
+         this->timingTree_->stop( "kernel" );
+      }
+
+      // Push result to lower-dimensional primitives
+      //
+      this->timingTree_->start( "post-communication" );
+      // Note: We could avoid communication here by implementing the apply() also for the respective
+      //       lower dimensional primitives!
+      dst.communicateAdditively< Cell, Face >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Cell, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.communicateAdditively< Cell, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      this->timingTree_->stop( "post-communication" );
+   }
+   else
+   {
+      WALBERLA_ABORT( "Not implemented." );
+   }
+
+   this->stopTiming( "apply" );
+}
+void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                                                                           const P2VectorFunction< idx_t >&            src,
+                                                                           const P1Function< idx_t >&                  dst,
+                                                                           uint_t                                      level,
+                                                                           DoFType flag ) const
+{
+   this->startTiming( "toMatrix" );
+
+   // We currently ignore the flag provided!
+   if ( flag != All )
+   {
+      WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" );
+   }
+
+   if ( storage_->hasGlobalCells() )
+   {
+      this->timingTree_->start( "pre-communication" );
+      rho.communicate< Face, Cell >( level );
+      rho.communicate< Edge, Cell >( level );
+      rho.communicate< Vertex, Cell >( level );
+      this->timingTree_->stop( "pre-communication" );
+
+      for ( auto& it : storage_->getCells() )
+      {
+         Cell& cell = *it.second;
+
+         // get hold of the actual numerical data
+         idx_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_0   = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_1   = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         idx_t* _data_src_edge_2   = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         idx_t*  _data_dst       = cell.getData( dst.getCellDataID() )->getPointer( level );
+         real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level );
+         real_t* _data_rhoEdge   = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level );
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level );
+         const real_t macro_vertex_coord_id_0comp0     = (real_t) cell.getCoordinates()[0][0];
+         const real_t macro_vertex_coord_id_0comp1     = (real_t) cell.getCoordinates()[0][1];
+         const real_t macro_vertex_coord_id_0comp2     = (real_t) cell.getCoordinates()[0][2];
+         const real_t macro_vertex_coord_id_1comp0     = (real_t) cell.getCoordinates()[1][0];
+         const real_t macro_vertex_coord_id_1comp1     = (real_t) cell.getCoordinates()[1][1];
+         const real_t macro_vertex_coord_id_1comp2     = (real_t) cell.getCoordinates()[1][2];
+         const real_t macro_vertex_coord_id_2comp0     = (real_t) cell.getCoordinates()[2][0];
+         const real_t macro_vertex_coord_id_2comp1     = (real_t) cell.getCoordinates()[2][1];
+         const real_t macro_vertex_coord_id_2comp2     = (real_t) cell.getCoordinates()[2][2];
+         const real_t macro_vertex_coord_id_3comp0     = (real_t) cell.getCoordinates()[3][0];
+         const real_t macro_vertex_coord_id_3comp1     = (real_t) cell.getCoordinates()[3][1];
+         const real_t macro_vertex_coord_id_3comp2     = (real_t) cell.getCoordinates()[3][2];
+         WALBERLA_CHECK_NOT_NULLPTR(
+             std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() ),
+             "This operator requires the IcosahedralShellMap to be registered as GeometryMap on every macro-cell." )
+         real_t radRefVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRefVertex();
+         real_t radRayVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRayVertex();
+         real_t refVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[0];
+         real_t rayVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[0];
+         real_t thrVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[0];
+         real_t forVertex_0  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[0];
+         real_t refVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[1];
+         real_t rayVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[1];
+         real_t thrVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[1];
+         real_t forVertex_1  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[1];
+         real_t refVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[2];
+         real_t rayVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[2];
+         real_t thrVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[2];
+         real_t forVertex_2  = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[2];
+
+         this->timingTree_->start( "kernel" );
+
+         toMatrix_macro_3D(
+
+             _data_dst,
+             _data_rhoEdge,
+             _data_rhoVertex,
+             _data_src_edge_0,
+             _data_src_edge_1,
+             _data_src_edge_2,
+             _data_src_vertex_0,
+             _data_src_vertex_1,
+             _data_src_vertex_2,
+             forVertex_0,
+             forVertex_1,
+             forVertex_2,
+             macro_vertex_coord_id_0comp0,
+             macro_vertex_coord_id_0comp1,
+             macro_vertex_coord_id_0comp2,
+             macro_vertex_coord_id_1comp0,
+             macro_vertex_coord_id_1comp1,
+             macro_vertex_coord_id_1comp2,
+             macro_vertex_coord_id_2comp0,
+             macro_vertex_coord_id_2comp1,
+             macro_vertex_coord_id_2comp2,
+             macro_vertex_coord_id_3comp0,
+             macro_vertex_coord_id_3comp1,
+             macro_vertex_coord_id_3comp2,
+             mat,
+             micro_edges_per_macro_edge,
+             micro_edges_per_macro_edge_float,
+             radRayVertex,
+             radRefVertex,
+             rayVertex_0,
+             rayVertex_1,
+             rayVertex_2,
+             refVertex_0,
+             refVertex_1,
+             refVertex_2,
+             thrVertex_0,
+             thrVertex_1,
+             thrVertex_2 );
+         this->timingTree_->stop( "kernel" );
+      }
+   }
+   else
+   {
+      this->timingTree_->start( "pre-communication" );
+      communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH );
+      this->timingTree_->stop( "pre-communication" );
+
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   this->stopTiming( "toMatrix" );
+}
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..ed20b07a743faa0c248beacd092e4ac32e7ad983
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+#pragma once
+
+#include "core/DataTypes.h"
+
+#include "hyteg/LikwidWrapper.hpp"
+#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
+#include "hyteg/geometry/IcosahedralShellMap.hpp"
+#include "hyteg/operators/Operator.hpp"
+#include "hyteg/p1functionspace/P1Function.hpp"
+#include "hyteg/p2functionspace/P2Function.hpp"
+#include "hyteg/p2functionspace/P2VectorFunction.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+/// RHS operator for the frozen velocity approach.
+///
+/// Geometry map: IcosahedralShellMap
+///
+/// Weak formulation
+///
+///     u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2))
+///     v: test function  (space: Lagrange, degree: 1)
+///     rho: coefficient    (space: Lagrange, degree: 2)
+///
+
+class P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap
+: public Operator< P2VectorFunction< real_t >, P1Function< real_t > >
+{
+ public:
+   P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap( const std::shared_ptr< PrimitiveStorage >& storage,
+                                                               size_t                                     minLevel,
+                                                               size_t                                     maxLevel,
+                                                               const P2Function< real_t >&                _rho );
+
+   void apply( const P2VectorFunction< real_t >& src,
+               const P1Function< real_t >&       dst,
+               uint_t                            level,
+               DoFType                           flag,
+               UpdateType                        updateType = Replace ) const;
+
+   void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                  const P2VectorFunction< idx_t >&            src,
+                  const P1Function< idx_t >&                  dst,
+                  uint_t                                      level,
+                  DoFType                                     flag ) const;
+
+ protected:
+ private:
+   /// Kernel type: apply
+   /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///   1938    2537      51      10      0              0                 0              0
+   void apply_macro_3D( real_t* RESTRICT _data_dst,
+                        real_t* RESTRICT _data_rhoEdge,
+                        real_t* RESTRICT _data_rhoVertex,
+                        real_t* RESTRICT _data_src_edge_0,
+                        real_t* RESTRICT _data_src_edge_1,
+                        real_t* RESTRICT _data_src_edge_2,
+                        real_t* RESTRICT _data_src_vertex_0,
+                        real_t* RESTRICT _data_src_vertex_1,
+                        real_t* RESTRICT _data_src_vertex_2,
+                        real_t           forVertex_0,
+                        real_t           forVertex_1,
+                        real_t           forVertex_2,
+                        real_t           macro_vertex_coord_id_0comp0,
+                        real_t           macro_vertex_coord_id_0comp1,
+                        real_t           macro_vertex_coord_id_0comp2,
+                        real_t           macro_vertex_coord_id_1comp0,
+                        real_t           macro_vertex_coord_id_1comp1,
+                        real_t           macro_vertex_coord_id_1comp2,
+                        real_t           macro_vertex_coord_id_2comp0,
+                        real_t           macro_vertex_coord_id_2comp1,
+                        real_t           macro_vertex_coord_id_2comp2,
+                        real_t           macro_vertex_coord_id_3comp0,
+                        real_t           macro_vertex_coord_id_3comp1,
+                        real_t           macro_vertex_coord_id_3comp2,
+                        int64_t          micro_edges_per_macro_edge,
+                        real_t           micro_edges_per_macro_edge_float,
+                        real_t           radRayVertex,
+                        real_t           radRefVertex,
+                        real_t           rayVertex_0,
+                        real_t           rayVertex_1,
+                        real_t           rayVertex_2,
+                        real_t           refVertex_0,
+                        real_t           refVertex_1,
+                        real_t           refVertex_2,
+                        real_t           thrVertex_0,
+                        real_t           thrVertex_1,
+                        real_t           thrVertex_2 ) const;
+   /// Kernel type: toMatrix
+   /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///   1818    2417      51      10      0              0                 0              3
+   void toMatrix_macro_3D( idx_t* RESTRICT                      _data_dst,
+                           real_t* RESTRICT                     _data_rhoEdge,
+                           real_t* RESTRICT                     _data_rhoVertex,
+                           idx_t* RESTRICT                      _data_src_edge_0,
+                           idx_t* RESTRICT                      _data_src_edge_1,
+                           idx_t* RESTRICT                      _data_src_edge_2,
+                           idx_t* RESTRICT                      _data_src_vertex_0,
+                           idx_t* RESTRICT                      _data_src_vertex_1,
+                           idx_t* RESTRICT                      _data_src_vertex_2,
+                           real_t                               forVertex_0,
+                           real_t                               forVertex_1,
+                           real_t                               forVertex_2,
+                           real_t                               macro_vertex_coord_id_0comp0,
+                           real_t                               macro_vertex_coord_id_0comp1,
+                           real_t                               macro_vertex_coord_id_0comp2,
+                           real_t                               macro_vertex_coord_id_1comp0,
+                           real_t                               macro_vertex_coord_id_1comp1,
+                           real_t                               macro_vertex_coord_id_1comp2,
+                           real_t                               macro_vertex_coord_id_2comp0,
+                           real_t                               macro_vertex_coord_id_2comp1,
+                           real_t                               macro_vertex_coord_id_2comp2,
+                           real_t                               macro_vertex_coord_id_3comp0,
+                           real_t                               macro_vertex_coord_id_3comp1,
+                           real_t                               macro_vertex_coord_id_3comp2,
+                           std::shared_ptr< SparseMatrixProxy > mat,
+                           int64_t                              micro_edges_per_macro_edge,
+                           real_t                               micro_edges_per_macro_edge_float,
+                           real_t                               radRayVertex,
+                           real_t                               radRefVertex,
+                           real_t                               rayVertex_0,
+                           real_t                               rayVertex_1,
+                           real_t                               rayVertex_2,
+                           real_t                               refVertex_0,
+                           real_t                               refVertex_1,
+                           real_t                               refVertex_2,
+                           real_t                               thrVertex_0,
+                           real_t                               thrVertex_1,
+                           real_t                               thrVertex_2 ) const;
+
+   P2Function< real_t > rho;
+};
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..918e7cb31e3e7dbdea61e0a3598737d509ff177f
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp
@@ -0,0 +1,574 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::apply_macro_2D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, real_t * RESTRICT  _data_src_edge_0, real_t * RESTRICT  _data_src_edge_1, real_t * RESTRICT  _data_src_vertex_0, real_t * RESTRICT  _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t refVertex_0, real_t refVertex_1, real_t thrVertex_0, real_t thrVertex_1 ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669};
+   
+       const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001};
+   
+       const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001};
+   
+       {
+          /* FaceType.GRAY */
+          const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY;
+          const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY;
+          const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY;
+          const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY;
+          const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY);
+          const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_3 = _data_src_edge_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_9 = _data_src_edge_1[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 real_t src_dof_10 = _data_src_edge_1[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 real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_3 = _data_rhoEdge[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q];
+                const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1;
+                const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0);
+                const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q];
+                const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3);
+                const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4;
+                const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000);
+                const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_8 = -tmp_qloop_7;
+                const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1));
+                const real_t tmp_qloop_10 = -radRayVertex + radRefVertex;
+                const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_11*1.0;
+                const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6;
+                const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13;
+                const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000);
+                const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3));
+                const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16;
+                const real_t tmp_qloop_18 = tmp_qloop_17*1.0;
+                const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8;
+                const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18;
+                const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15;
+                const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23;
+                const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4;
+                const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7;
+                const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3;
+                const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30;
+                const real_t tmp_qloop_32 = tmp_qloop_17*2.0;
+                const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30;
+                const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8;
+                const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q];
+                const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_40 = tmp_qloop_39*2.0;
+                const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_42 = tmp_qloop_41*2.0;
+                const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0);
+                const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45;
+                const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45;
+                const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q];
+                const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q];
+                const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44;
+                const real_t tmp_qloop_52 = tmp_qloop_39*4.0;
+                const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52;
+                const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q];
+                const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q];
+                const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q];
+                const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54;
+                const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4;
+                const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19;
+                const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3;
+                const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3;
+                const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0;
+                const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21);
+                const real_t abs_det_jac_blending = tmp_qloop_21;
+                const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22;
+                const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22;
+                const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22;
+                const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_0);
+                const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55;
+                const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59;
+                const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61;
+                const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22;
+                const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_1);
+                const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57;
+                const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59;
+                const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28;
+                const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34;
+                const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35;
+                const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34;
+                const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33;
+                const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56;
+                const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56;
+                const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56;
+                const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56;
+                const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56;
+                const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56;
+                const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58;
+                const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58;
+                const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58;
+                const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58;
+                const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58;
+                const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58;
+                const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60;
+                const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60;
+                const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60;
+                const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62;
+                const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60;
+                const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60;
+                const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63;
+                const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63;
+                const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63;
+                const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64;
+                const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63;
+                const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63;
+                const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62;
+                const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62;
+                const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62;
+                const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65;
+                const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62;
+                const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62;
+                const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64;
+                const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64;
+                const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64;
+                const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65;
+                const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64;
+                const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+          }
+       }
+       {
+          /* FaceType.BLUE */
+          const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE;
+          const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE;
+          const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE;
+          const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE;
+          const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE;
+          const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE;
+          const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE;
+          const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE;
+          const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE);
+          const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t src_dof_3 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t src_dof_9 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_10 = _data_src_edge_1[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 real_t src_dof_11 = _data_src_edge_1[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 real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q];
+                const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1;
+                const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0);
+                const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q];
+                const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3);
+                const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4;
+                const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000);
+                const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_8 = -tmp_qloop_7;
+                const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1));
+                const real_t tmp_qloop_10 = -radRayVertex + radRefVertex;
+                const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_11*1.0;
+                const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6;
+                const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13;
+                const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000);
+                const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3));
+                const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16;
+                const real_t tmp_qloop_18 = tmp_qloop_17*1.0;
+                const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8;
+                const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18;
+                const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15;
+                const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23;
+                const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4;
+                const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7;
+                const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3;
+                const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30;
+                const real_t tmp_qloop_32 = tmp_qloop_17*2.0;
+                const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30;
+                const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8;
+                const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q];
+                const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_40 = tmp_qloop_39*2.0;
+                const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_42 = tmp_qloop_41*2.0;
+                const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0);
+                const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45;
+                const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45;
+                const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q];
+                const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q];
+                const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44;
+                const real_t tmp_qloop_52 = tmp_qloop_39*4.0;
+                const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52;
+                const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q];
+                const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q];
+                const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q];
+                const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54;
+                const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4;
+                const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19;
+                const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3;
+                const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3;
+                const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0;
+                const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21);
+                const real_t abs_det_jac_blending = tmp_qloop_21;
+                const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22;
+                const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22;
+                const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22;
+                const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_0);
+                const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55;
+                const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59;
+                const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61;
+                const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22;
+                const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_1);
+                const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57;
+                const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59;
+                const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28;
+                const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34;
+                const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35;
+                const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34;
+                const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33;
+                const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56;
+                const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56;
+                const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56;
+                const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56;
+                const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56;
+                const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56;
+                const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58;
+                const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58;
+                const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58;
+                const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58;
+                const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58;
+                const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58;
+                const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60;
+                const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60;
+                const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60;
+                const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62;
+                const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60;
+                const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60;
+                const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63;
+                const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63;
+                const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63;
+                const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64;
+                const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63;
+                const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63;
+                const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62;
+                const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62;
+                const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62;
+                const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65;
+                const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62;
+                const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62;
+                const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64;
+                const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64;
+                const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64;
+                const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65;
+                const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64;
+                const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..832f73059301307e4fbdb377338cce11c1565ac0
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp
@@ -0,0 +1,738 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::toMatrix_macro_2D( idx_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, idx_t * RESTRICT  _data_src_edge_0, idx_t * RESTRICT  _data_src_edge_1, idx_t * RESTRICT  _data_src_vertex_0, idx_t * RESTRICT  _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t refVertex_0, real_t refVertex_1, real_t thrVertex_0, real_t thrVertex_1 ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669};
+   
+       const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001};
+   
+       const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001};
+   
+       {
+          /* FaceType.GRAY */
+          const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY;
+          const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY;
+          const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY;
+          const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY;
+          const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY);
+          const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_3 = _data_rhoEdge[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q];
+                const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1;
+                const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0);
+                const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q];
+                const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3);
+                const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4;
+                const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000);
+                const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_8 = -tmp_qloop_7;
+                const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1));
+                const real_t tmp_qloop_10 = -radRayVertex + radRefVertex;
+                const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_11*1.0;
+                const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6;
+                const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13;
+                const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000);
+                const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3));
+                const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16;
+                const real_t tmp_qloop_18 = tmp_qloop_17*1.0;
+                const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8;
+                const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18;
+                const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15;
+                const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23;
+                const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4;
+                const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7;
+                const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3;
+                const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30;
+                const real_t tmp_qloop_32 = tmp_qloop_17*2.0;
+                const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30;
+                const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8;
+                const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q];
+                const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_40 = tmp_qloop_39*2.0;
+                const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_42 = tmp_qloop_41*2.0;
+                const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0);
+                const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45;
+                const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45;
+                const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q];
+                const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q];
+                const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44;
+                const real_t tmp_qloop_52 = tmp_qloop_39*4.0;
+                const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52;
+                const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q];
+                const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q];
+                const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q];
+                const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54;
+                const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4;
+                const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19;
+                const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3;
+                const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3;
+                const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0;
+                const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21);
+                const real_t abs_det_jac_blending = tmp_qloop_21;
+                const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22;
+                const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22;
+                const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22;
+                const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_0);
+                const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55;
+                const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59;
+                const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61;
+                const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22;
+                const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_1);
+                const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57;
+                const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59;
+                const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28;
+                const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34;
+                const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35;
+                const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34;
+                const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33;
+                const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56;
+                const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56;
+                const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56;
+                const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56;
+                const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56;
+                const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56;
+                const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58;
+                const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58;
+                const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58;
+                const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58;
+                const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58;
+                const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58;
+                const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60;
+                const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60;
+                const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60;
+                const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62;
+                const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60;
+                const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60;
+                const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63;
+                const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63;
+                const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63;
+                const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64;
+                const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63;
+                const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63;
+                const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62;
+                const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62;
+                const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62;
+                const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65;
+                const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62;
+                const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62;
+                const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64;
+                const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64;
+                const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64;
+                const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65;
+                const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64;
+                const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+         
+             std::vector< uint_t > _data_rowIdx( 3 );
+             std::vector< uint_t > _data_colIdx( 12 );
+             std::vector< real_t > _data_mat( 36 );
+         
+             _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]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[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_src_edge_0[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_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[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[10] = ((uint64_t)(_data_src_edge_1[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[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_1_0));
+             _data_mat[13] = ((real_t)(elMat_1_1));
+             _data_mat[14] = ((real_t)(elMat_1_2));
+             _data_mat[15] = ((real_t)(elMat_1_3));
+             _data_mat[16] = ((real_t)(elMat_1_4));
+             _data_mat[17] = ((real_t)(elMat_1_5));
+             _data_mat[18] = ((real_t)(elMat_1_6));
+             _data_mat[19] = ((real_t)(elMat_1_7));
+             _data_mat[20] = ((real_t)(elMat_1_8));
+             _data_mat[21] = ((real_t)(elMat_1_9));
+             _data_mat[22] = ((real_t)(elMat_1_10));
+             _data_mat[23] = ((real_t)(elMat_1_11));
+             _data_mat[24] = ((real_t)(elMat_2_0));
+             _data_mat[25] = ((real_t)(elMat_2_1));
+             _data_mat[26] = ((real_t)(elMat_2_2));
+             _data_mat[27] = ((real_t)(elMat_2_3));
+             _data_mat[28] = ((real_t)(elMat_2_4));
+             _data_mat[29] = ((real_t)(elMat_2_5));
+             _data_mat[30] = ((real_t)(elMat_2_6));
+             _data_mat[31] = ((real_t)(elMat_2_7));
+             _data_mat[32] = ((real_t)(elMat_2_8));
+             _data_mat[33] = ((real_t)(elMat_2_9));
+             _data_mat[34] = ((real_t)(elMat_2_10));
+             _data_mat[35] = ((real_t)(elMat_2_11));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* FaceType.BLUE */
+          const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE;
+          const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE;
+          const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE;
+          const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE;
+          const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE;
+          const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE;
+          const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE;
+          const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE;
+          const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE);
+          const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q];
+                const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1;
+                const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0);
+                const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q];
+                const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3);
+                const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4;
+                const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000);
+                const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_8 = -tmp_qloop_7;
+                const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1));
+                const real_t tmp_qloop_10 = -radRayVertex + radRefVertex;
+                const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_11*1.0;
+                const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6;
+                const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13;
+                const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000);
+                const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3));
+                const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16;
+                const real_t tmp_qloop_18 = tmp_qloop_17*1.0;
+                const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8;
+                const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18;
+                const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15;
+                const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23;
+                const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4;
+                const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7;
+                const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3;
+                const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30;
+                const real_t tmp_qloop_32 = tmp_qloop_17*2.0;
+                const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30;
+                const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8;
+                const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q];
+                const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_40 = tmp_qloop_39*2.0;
+                const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_42 = tmp_qloop_41*2.0;
+                const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0);
+                const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45;
+                const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45;
+                const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q];
+                const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q];
+                const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44;
+                const real_t tmp_qloop_52 = tmp_qloop_39*4.0;
+                const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52;
+                const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q];
+                const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q];
+                const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q];
+                const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54;
+                const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4;
+                const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19;
+                const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3;
+                const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3;
+                const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0;
+                const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21);
+                const real_t abs_det_jac_blending = tmp_qloop_21;
+                const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22;
+                const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22;
+                const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22;
+                const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_0);
+                const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55;
+                const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59;
+                const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61;
+                const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22;
+                const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_1);
+                const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57;
+                const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59;
+                const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28;
+                const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34;
+                const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35;
+                const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34;
+                const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33;
+                const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56;
+                const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56;
+                const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56;
+                const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56;
+                const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56;
+                const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56;
+                const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58;
+                const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58;
+                const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58;
+                const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58;
+                const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58;
+                const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58;
+                const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60;
+                const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60;
+                const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60;
+                const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62;
+                const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60;
+                const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60;
+                const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63;
+                const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63;
+                const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63;
+                const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64;
+                const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63;
+                const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63;
+                const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62;
+                const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62;
+                const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62;
+                const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65;
+                const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62;
+                const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62;
+                const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64;
+                const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64;
+                const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64;
+                const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65;
+                const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64;
+                const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+         
+             std::vector< uint_t > _data_rowIdx( 3 );
+             std::vector< uint_t > _data_colIdx( 12 );
+             std::vector< real_t > _data_mat( 36 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_src_edge_0[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[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[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[11] = ((uint64_t)(_data_src_edge_1[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] = ((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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_1_0));
+             _data_mat[13] = ((real_t)(elMat_1_1));
+             _data_mat[14] = ((real_t)(elMat_1_2));
+             _data_mat[15] = ((real_t)(elMat_1_3));
+             _data_mat[16] = ((real_t)(elMat_1_4));
+             _data_mat[17] = ((real_t)(elMat_1_5));
+             _data_mat[18] = ((real_t)(elMat_1_6));
+             _data_mat[19] = ((real_t)(elMat_1_7));
+             _data_mat[20] = ((real_t)(elMat_1_8));
+             _data_mat[21] = ((real_t)(elMat_1_9));
+             _data_mat[22] = ((real_t)(elMat_1_10));
+             _data_mat[23] = ((real_t)(elMat_1_11));
+             _data_mat[24] = ((real_t)(elMat_2_0));
+             _data_mat[25] = ((real_t)(elMat_2_1));
+             _data_mat[26] = ((real_t)(elMat_2_2));
+             _data_mat[27] = ((real_t)(elMat_2_3));
+             _data_mat[28] = ((real_t)(elMat_2_4));
+             _data_mat[29] = ((real_t)(elMat_2_5));
+             _data_mat[30] = ((real_t)(elMat_2_6));
+             _data_mat[31] = ((real_t)(elMat_2_7));
+             _data_mat[32] = ((real_t)(elMat_2_8));
+             _data_mat[33] = ((real_t)(elMat_2_9));
+             _data_mat[34] = ((real_t)(elMat_2_10));
+             _data_mat[35] = ((real_t)(elMat_2_11));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..77f66b1a81cb4ba60ba7ca5e129e052a1f951eac
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp
@@ -0,0 +1,4188 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::apply_macro_3D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, real_t * RESTRICT  _data_src_edge_0, real_t * RESTRICT  _data_src_edge_1, real_t * RESTRICT  _data_src_edge_2, real_t * RESTRICT  _data_src_vertex_0, real_t * RESTRICT  _data_src_vertex_1, real_t * RESTRICT  _data_src_vertex_2, real_t forVertex_0, real_t forVertex_1, real_t forVertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t rayVertex_2, real_t refVertex_0, real_t refVertex_1, real_t refVertex_2, real_t thrVertex_0, real_t thrVertex_1, real_t thrVertex_2 ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983};
+   
+       const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666};
+   
+       const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666};
+   
+       const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666};
+   
+       {
+          /* CellType.WHITE_UP */
+          const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2;
+          const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP;
+          const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP;
+          const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP;
+          const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP;
+          const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP;
+          const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP;
+          const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP;
+          const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP;
+          const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP;
+          const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP;
+          const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP;
+          const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP);
+          const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP);
+          const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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] = elMatVec_1 + _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_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))] = elMatVec_2 + _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_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))] = elMatVec_3 + _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))];
+          }
+       }
+       {
+          /* CellType.WHITE_DOWN */
+          const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN;
+          const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN;
+          const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN;
+          const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN;
+          const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN;
+          const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN;
+          const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN;
+          const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN;
+          const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN;
+          const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN);
+          const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN);
+          const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          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 - 2; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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] = elMatVec_1 + _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];
+             _data_dst[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))] = elMatVec_2 + _data_dst[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))];
+             _data_dst[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] = elMatVec_3 + _data_dst[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];
+          }
+       }
+       {
+          /* CellType.BLUE_UP */
+          const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP;
+          const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP;
+          const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP;
+          const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP;
+          const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP;
+          const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP;
+          const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP;
+          const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP;
+          const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP;
+          const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP;
+          const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP;
+          const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP;
+          const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP;
+          const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP);
+          const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP);
+          const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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))] = elMatVec_1 + _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_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] = elMatVec_2 + _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_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] = elMatVec_3 + _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];
+          }
+       }
+       {
+          /* CellType.BLUE_DOWN */
+          const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN;
+          const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN;
+          const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN;
+          const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN;
+          const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN;
+          const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN;
+          const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN;
+          const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN);
+          const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN);
+          const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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))] = elMatVec_1 + _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))];
+             _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] = elMatVec_2 + _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];
+             _data_dst[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))] = elMatVec_3 + _data_dst[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))];
+          }
+       }
+       {
+          /* CellType.GREEN_UP */
+          const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP;
+          const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP;
+          const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP;
+          const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP;
+          const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP;
+          const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP;
+          const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP;
+          const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP;
+          const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP;
+          const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP;
+          const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP;
+          const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP;
+          const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP;
+          const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP;
+          const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP;
+          const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP;
+          const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP);
+          const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP);
+          const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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))] = elMatVec_1 + _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_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))] = elMatVec_2 + _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))];
+             _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] = elMatVec_3 + _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];
+          }
+       }
+       {
+          /* CellType.GREEN_DOWN */
+          const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN;
+          const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN;
+          const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN;
+          const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN;
+          const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN;
+          const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN;
+          const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN;
+          const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN;
+          const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN;
+          const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN;
+          const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN);
+          const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN);
+          const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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] = elMatVec_1 + _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_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] = elMatVec_2 + _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];
+             _data_dst[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))] = elMatVec_3 + _data_dst[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))];
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..05c564b414a539295d5dd4cd7d048ea03afb7944
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp
@@ -0,0 +1,5682 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::toMatrix_macro_3D( idx_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, idx_t * RESTRICT  _data_src_edge_0, idx_t * RESTRICT  _data_src_edge_1, idx_t * RESTRICT  _data_src_edge_2, idx_t * RESTRICT  _data_src_vertex_0, idx_t * RESTRICT  _data_src_vertex_1, idx_t * RESTRICT  _data_src_vertex_2, real_t forVertex_0, real_t forVertex_1, real_t forVertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t rayVertex_2, real_t refVertex_0, real_t refVertex_1, real_t refVertex_2, real_t thrVertex_0, real_t thrVertex_1, real_t thrVertex_2 ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983};
+   
+       const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666};
+   
+       const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666};
+   
+       const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666};
+   
+       {
+          /* CellType.WHITE_UP */
+          const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2;
+          const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP;
+          const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP;
+          const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP;
+          const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP;
+          const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP;
+          const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP;
+          const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP;
+          const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP;
+          const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP;
+          const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP;
+          const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP;
+          const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP);
+          const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP);
+          const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((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[3] = ((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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.WHITE_DOWN */
+          const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN;
+          const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN;
+          const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN;
+          const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN;
+          const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN;
+          const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN;
+          const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN;
+          const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN;
+          const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN;
+          const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN);
+          const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN);
+          const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          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 - 2; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[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))]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.BLUE_UP */
+          const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP;
+          const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP;
+          const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP;
+          const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP;
+          const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP;
+          const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP;
+          const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP;
+          const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP;
+          const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP;
+          const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP;
+          const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP;
+          const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP;
+          const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP;
+          const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP);
+          const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP);
+          const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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[3] = ((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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.BLUE_DOWN */
+          const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN;
+          const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN;
+          const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN;
+          const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN;
+          const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN;
+          const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN;
+          const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN;
+          const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN);
+          const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN);
+          const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.GREEN_UP */
+          const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP;
+          const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP;
+          const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP;
+          const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP;
+          const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP;
+          const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP;
+          const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP;
+          const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP;
+          const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP;
+          const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP;
+          const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP;
+          const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP;
+          const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP;
+          const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP;
+          const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP;
+          const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP;
+          const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP);
+          const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP);
+          const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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))]));
+             _data_rowIdx[3] = ((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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.GREEN_DOWN */
+          const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN;
+          const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN;
+          const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN;
+          const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN;
+          const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN;
+          const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN;
+          const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN;
+          const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN;
+          const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN;
+          const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN;
+          const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN);
+          const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN);
+          const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1;
+                const real_t tmp_qloop_1 = -rayVertex_0;
+                const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1;
+                const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2;
+                const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3;
+                const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2;
+                const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1;
+                const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6;
+                const real_t tmp_qloop_8 = -rayVertex_1;
+                const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8;
+                const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0;
+                const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0;
+                const real_t tmp_qloop_12 = -rayVertex_2;
+                const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12;
+                const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9;
+                const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13;
+                const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7;
+                const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16);
+                const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q];
+                const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18);
+                const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16;
+                const real_t tmp_qloop_21 = radRayVertex - radRefVertex;
+                const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q];
+                const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22;
+                const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18;
+                const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q];
+                const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8;
+                const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7);
+                const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27;
+                const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25);
+                const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22);
+                const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30;
+                const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14;
+                const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33;
+                const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34;
+                const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35);
+                const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000);
+                const real_t tmp_qloop_38 = tmp_qloop_37*1.0;
+                const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4;
+                const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40;
+                const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38;
+                const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43;
+                const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7;
+                const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_47 = -tmp_qloop_28;
+                const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47;
+                const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48;
+                const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49;
+                const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33;
+                const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51;
+                const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39;
+                const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28;
+                const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54;
+                const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46;
+                const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56;
+                const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57;
+                const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0;
+                const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66;
+                const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32;
+                const real_t tmp_qloop_69 = tmp_qloop_18*2.0;
+                const real_t tmp_qloop_70 = -tmp_qloop_41;
+                const real_t tmp_qloop_71 = tmp_qloop_35*2.0;
+                const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45;
+                const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72;
+                const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27;
+                const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66;
+                const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76;
+                const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77;
+                const real_t tmp_qloop_79 = tmp_qloop_25*2.0;
+                const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79;
+                const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43;
+                const real_t tmp_qloop_82 = tmp_qloop_22*2.0;
+                const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82;
+                const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78;
+                const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22;
+                const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43;
+                const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69;
+                const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43;
+                const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76;
+                const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28;
+                const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89;
+                const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82;
+                const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89;
+                const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68;
+                const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76;
+                const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69;
+                const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76;
+                const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79;
+                const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97;
+                const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99;
+                const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74;
+                const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76;
+                const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_104 = tmp_qloop_103*2.0;
+                const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_106 = tmp_qloop_105*2.0;
+                const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_108 = tmp_qloop_107*2.0;
+                const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q];
+                const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q];
+                const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q];
+                const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113;
+                const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116;
+                const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109;
+                const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0);
+                const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119;
+                const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120;
+                const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0;
+                const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111;
+                const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123;
+                const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123;
+                const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q];
+                const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q];
+                const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q];
+                const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116;
+                const real_t tmp_qloop_131 = tmp_qloop_105*4.0;
+                const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131;
+                const real_t tmp_qloop_133 = tmp_qloop_103*4.0;
+                const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133;
+                const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q];
+                const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q];
+                const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q];
+                const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q];
+                const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111;
+                const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158;
+                const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135;
+                const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38;
+                const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44;
+                const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50;
+                const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52;
+                const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55;
+                const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1;
+                const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50;
+                const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2;
+                const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52;
+                const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44;
+                const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1;
+                const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58;
+                const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2;
+                const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2;
+                const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63;
+                const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64);
+                const real_t abs_det_jac_blending = tmp_qloop_64;
+                const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61);
+                const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62);
+                const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63);
+                const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0);
+                const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0);
+                const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0);
+                const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_0);
+                const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136;
+                const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142;
+                const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144;
+                const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145;
+                const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147;
+                const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135;
+                const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157;
+                const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0);
+                const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_1);
+                const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138;
+                const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142;
+                const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144;
+                const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150;
+                const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147;
+                const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161;
+                const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0);
+                const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_2);
+                const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140;
+                const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142;
+                const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144;
+                const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154;
+                const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147;
+                const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161;
+                const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67;
+                const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67;
+                const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67;
+                const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78;
+                const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81;
+                const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84;
+                const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85;
+                const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84;
+                const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86;
+                const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88;
+                const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91;
+                const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93;
+                const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95;
+                const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95;
+                const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95;
+                const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93;
+                const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91;
+                const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92;
+                const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96;
+                const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0;
+                const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97;
+                const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0;
+                const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98;
+                const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99;
+                const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0;
+                const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0;
+                const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0;
+                const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137;
+                const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137;
+                const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137;
+                const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137;
+                const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137;
+                const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137;
+                const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137;
+                const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137;
+                const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137;
+                const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137;
+                const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139;
+                const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139;
+                const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139;
+                const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139;
+                const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139;
+                const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139;
+                const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139;
+                const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139;
+                const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139;
+                const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139;
+                const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141;
+                const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141;
+                const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141;
+                const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141;
+                const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141;
+                const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141;
+                const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141;
+                const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141;
+                const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141;
+                const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141;
+                const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143;
+                const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143;
+                const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143;
+                const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143;
+                const real_t q_tmp_1_4 = tmp_qloop_146;
+                const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145;
+                const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148;
+                const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143;
+                const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143;
+                const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143;
+                const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149;
+                const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149;
+                const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149;
+                const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149;
+                const real_t q_tmp_1_14 = tmp_qloop_151;
+                const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150;
+                const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152;
+                const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149;
+                const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149;
+                const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149;
+                const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153;
+                const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153;
+                const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153;
+                const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153;
+                const real_t q_tmp_1_24 = tmp_qloop_155;
+                const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154;
+                const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156;
+                const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153;
+                const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153;
+                const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153;
+                const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148;
+                const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148;
+                const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148;
+                const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148;
+                const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145;
+                const real_t q_tmp_2_5 = tmp_qloop_146;
+                const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158;
+                const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148;
+                const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148;
+                const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148;
+                const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152;
+                const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152;
+                const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152;
+                const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152;
+                const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150;
+                const real_t q_tmp_2_15 = tmp_qloop_151;
+                const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159;
+                const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152;
+                const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152;
+                const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152;
+                const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156;
+                const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156;
+                const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156;
+                const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156;
+                const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154;
+                const real_t q_tmp_2_25 = tmp_qloop_155;
+                const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159;
+                const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156;
+                const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156;
+                const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156;
+                const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145;
+                const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145;
+                const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145;
+                const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145;
+                const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160;
+                const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160;
+                const real_t q_tmp_3_6 = tmp_qloop_146;
+                const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145;
+                const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145;
+                const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145;
+                const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150;
+                const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150;
+                const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150;
+                const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150;
+                const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162;
+                const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162;
+                const real_t q_tmp_3_16 = tmp_qloop_151;
+                const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150;
+                const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150;
+                const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150;
+                const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154;
+                const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154;
+                const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154;
+                const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154;
+                const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163;
+                const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163;
+                const real_t q_tmp_3_26 = tmp_qloop_155;
+                const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154;
+                const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154;
+                const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((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]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a161a3a891e6c0ac30f296941dcb4638b4cc48bb
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp
@@ -0,0 +1,464 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply_macro_2D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, real_t * RESTRICT  _data_src_edge_0, real_t * RESTRICT  _data_src_edge_1, real_t * RESTRICT  _data_src_vertex_0, real_t * RESTRICT  _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669};
+   
+       const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001};
+   
+       const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001};
+   
+       {
+          /* FaceType.GRAY */
+          const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY;
+          const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY;
+          const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY;
+          const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY;
+          const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY);
+          const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_3 = _data_src_edge_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_9 = _data_src_edge_1[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 real_t src_dof_10 = _data_src_edge_1[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 real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_3 = _data_rhoEdge[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q];
+                const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0);
+                const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8;
+                const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8;
+                const real_t tmp_qloop_11 = jac_affine_inv_0_0_GRAY*tmp_qloop_9 + jac_affine_inv_1_0_GRAY*tmp_qloop_10;
+                const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q];
+                const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q];
+                const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7;
+                const real_t tmp_qloop_15 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15;
+                const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q];
+                const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18;
+                const real_t tmp_qloop_20 = jac_affine_inv_0_1_GRAY*tmp_qloop_9 + jac_affine_inv_1_1_GRAY*tmp_qloop_10;
+                const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20;
+                const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q];
+                const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q];
+                const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22;
+                const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24;
+                const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4;
+                const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6;
+                const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19;
+                const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19;
+                const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19;
+                const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19;
+                const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19;
+                const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6;
+                const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21;
+                const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21;
+                const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21;
+                const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21;
+                const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21;
+                const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6;
+                const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23;
+                const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23;
+                const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25;
+                const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23;
+                const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23;
+                const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6;
+                const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26;
+                const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26;
+                const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27;
+                const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26;
+                const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26;
+                const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6;
+                const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25;
+                const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25;
+                const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28;
+                const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25;
+                const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25;
+                const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6;
+                const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27;
+                const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27;
+                const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28;
+                const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27;
+                const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+          }
+       }
+       {
+          /* FaceType.BLUE */
+          const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE;
+          const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE;
+          const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE;
+          const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE;
+          const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE;
+          const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE;
+          const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE;
+          const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE;
+          const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE);
+          const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t src_dof_3 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t src_dof_9 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t src_dof_10 = _data_src_edge_1[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 real_t src_dof_11 = _data_src_edge_1[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 real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q];
+                const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0);
+                const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8;
+                const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8;
+                const real_t tmp_qloop_11 = jac_affine_inv_0_0_BLUE*tmp_qloop_9 + jac_affine_inv_1_0_BLUE*tmp_qloop_10;
+                const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q];
+                const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q];
+                const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7;
+                const real_t tmp_qloop_15 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15;
+                const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q];
+                const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18;
+                const real_t tmp_qloop_20 = jac_affine_inv_0_1_BLUE*tmp_qloop_9 + jac_affine_inv_1_1_BLUE*tmp_qloop_10;
+                const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20;
+                const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q];
+                const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q];
+                const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22;
+                const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24;
+                const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4;
+                const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6;
+                const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19;
+                const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19;
+                const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19;
+                const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19;
+                const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19;
+                const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6;
+                const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21;
+                const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21;
+                const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21;
+                const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21;
+                const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21;
+                const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6;
+                const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23;
+                const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23;
+                const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25;
+                const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23;
+                const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23;
+                const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6;
+                const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26;
+                const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26;
+                const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27;
+                const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26;
+                const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26;
+                const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6;
+                const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25;
+                const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25;
+                const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28;
+                const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25;
+                const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25;
+                const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6;
+                const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27;
+                const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27;
+                const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28;
+                const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27;
+                const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..45073514b3c4518e98077e3e54bc3fea9aaa8f0b
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp
@@ -0,0 +1,3292 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply_macro_3D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, real_t * RESTRICT  _data_src_edge_0, real_t * RESTRICT  _data_src_edge_1, real_t * RESTRICT  _data_src_edge_2, real_t * RESTRICT  _data_src_vertex_0, real_t * RESTRICT  _data_src_vertex_1, real_t * RESTRICT  _data_src_vertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983};
+   
+       const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666};
+   
+       const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666};
+   
+       const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666};
+   
+       {
+          /* CellType.WHITE_UP */
+          const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2;
+          const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP;
+          const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP;
+          const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP;
+          const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP;
+          const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP;
+          const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP;
+          const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP;
+          const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP;
+          const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP;
+          const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP;
+          const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP;
+          const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP);
+          const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP);
+          const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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] = elMatVec_1 + _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_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))] = elMatVec_2 + _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_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))] = elMatVec_3 + _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))];
+          }
+       }
+       {
+          /* CellType.WHITE_DOWN */
+          const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN;
+          const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN;
+          const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN;
+          const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN;
+          const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN;
+          const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN;
+          const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN;
+          const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN;
+          const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN;
+          const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN);
+          const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN);
+          const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          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 - 2; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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] = elMatVec_1 + _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];
+             _data_dst[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))] = elMatVec_2 + _data_dst[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))];
+             _data_dst[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] = elMatVec_3 + _data_dst[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];
+          }
+       }
+       {
+          /* CellType.BLUE_UP */
+          const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP;
+          const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP;
+          const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP;
+          const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP;
+          const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP;
+          const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP;
+          const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP;
+          const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP;
+          const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP;
+          const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP;
+          const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP;
+          const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP;
+          const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP;
+          const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP);
+          const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP);
+          const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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))] = elMatVec_1 + _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_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] = elMatVec_2 + _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_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] = elMatVec_3 + _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];
+          }
+       }
+       {
+          /* CellType.BLUE_DOWN */
+          const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN;
+          const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN;
+          const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN;
+          const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN;
+          const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN;
+          const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN;
+          const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN;
+          const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN);
+          const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN);
+          const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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))] = elMatVec_1 + _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))];
+             _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] = elMatVec_2 + _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];
+             _data_dst[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))] = elMatVec_3 + _data_dst[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))];
+          }
+       }
+       {
+          /* CellType.GREEN_UP */
+          const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP;
+          const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP;
+          const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP;
+          const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP;
+          const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP;
+          const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP;
+          const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP;
+          const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP;
+          const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP;
+          const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP;
+          const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP;
+          const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP;
+          const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP;
+          const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP;
+          const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP;
+          const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP;
+          const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP);
+          const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP);
+          const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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] = elMatVec_0 + _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_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))] = elMatVec_1 + _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_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))] = elMatVec_2 + _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))];
+             _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] = elMatVec_3 + _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];
+          }
+       }
+       {
+          /* CellType.GREEN_DOWN */
+          const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN;
+          const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN;
+          const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN;
+          const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN;
+          const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN;
+          const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN;
+          const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN;
+          const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN;
+          const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN;
+          const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN;
+          const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN);
+          const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN);
+          const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t src_dof_0 = _data_src_vertex_0[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 real_t src_dof_1 = _data_src_vertex_0[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 real_t src_dof_2 = _data_src_vertex_0[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 real_t src_dof_3 = _data_src_vertex_0[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 real_t src_dof_4 = _data_src_edge_0[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 real_t src_dof_5 = _data_src_edge_0[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 real_t src_dof_6 = _data_src_edge_0[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 real_t src_dof_7 = _data_src_edge_0[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 real_t src_dof_8 = _data_src_edge_0[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 real_t src_dof_9 = _data_src_edge_0[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 real_t src_dof_10 = _data_src_vertex_1[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 real_t src_dof_11 = _data_src_vertex_1[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 real_t src_dof_12 = _data_src_vertex_1[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 real_t src_dof_13 = _data_src_vertex_1[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 real_t src_dof_14 = _data_src_edge_1[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 real_t src_dof_15 = _data_src_edge_1[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 real_t src_dof_16 = _data_src_edge_1[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 real_t src_dof_17 = _data_src_edge_1[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 real_t src_dof_18 = _data_src_edge_1[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 real_t src_dof_19 = _data_src_edge_1[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 real_t src_dof_20 = _data_src_vertex_2[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 real_t src_dof_21 = _data_src_vertex_2[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 real_t src_dof_22 = _data_src_vertex_2[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 real_t src_dof_23 = _data_src_vertex_2[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 real_t src_dof_24 = _data_src_edge_2[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 real_t src_dof_25 = _data_src_edge_2[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 real_t src_dof_26 = _data_src_edge_2[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 real_t src_dof_27 = _data_src_edge_2[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 real_t src_dof_28 = _data_src_edge_2[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 real_t src_dof_29 = _data_src_edge_2[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 real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9;
+             const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9;
+             const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9;
+             const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9;
+             _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))] = elMatVec_0 + _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_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] = elMatVec_1 + _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_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] = elMatVec_2 + _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];
+             _data_dst[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))] = elMatVec_3 + _data_dst[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))];
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8d57d0886cb9b5125b602fb36326a9ed2e7c512d
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp
@@ -0,0 +1,628 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix_macro_2D( idx_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, idx_t * RESTRICT  _data_src_edge_0, idx_t * RESTRICT  _data_src_edge_1, idx_t * RESTRICT  _data_src_vertex_0, idx_t * RESTRICT  _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669};
+   
+       const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001};
+   
+       const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001};
+   
+       {
+          /* FaceType.GRAY */
+          const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY;
+          const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY;
+          const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY;
+          const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY;
+          const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY);
+          const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY;
+          const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_3 = _data_rhoEdge[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q];
+                const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0);
+                const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8;
+                const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8;
+                const real_t tmp_qloop_11 = jac_affine_inv_0_0_GRAY*tmp_qloop_9 + jac_affine_inv_1_0_GRAY*tmp_qloop_10;
+                const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q];
+                const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q];
+                const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7;
+                const real_t tmp_qloop_15 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15;
+                const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q];
+                const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18;
+                const real_t tmp_qloop_20 = jac_affine_inv_0_1_GRAY*tmp_qloop_9 + jac_affine_inv_1_1_GRAY*tmp_qloop_10;
+                const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20;
+                const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q];
+                const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q];
+                const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22;
+                const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24;
+                const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4;
+                const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6;
+                const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19;
+                const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19;
+                const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19;
+                const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19;
+                const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19;
+                const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6;
+                const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21;
+                const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21;
+                const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21;
+                const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21;
+                const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21;
+                const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6;
+                const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23;
+                const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23;
+                const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25;
+                const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23;
+                const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23;
+                const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6;
+                const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26;
+                const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26;
+                const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27;
+                const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26;
+                const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26;
+                const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6;
+                const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25;
+                const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25;
+                const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28;
+                const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25;
+                const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25;
+                const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6;
+                const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27;
+                const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27;
+                const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28;
+                const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27;
+                const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+         
+             std::vector< uint_t > _data_rowIdx( 3 );
+             std::vector< uint_t > _data_colIdx( 12 );
+             std::vector< real_t > _data_mat( 36 );
+         
+             _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]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[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_src_edge_0[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_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[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[10] = ((uint64_t)(_data_src_edge_1[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[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_1_0));
+             _data_mat[13] = ((real_t)(elMat_1_1));
+             _data_mat[14] = ((real_t)(elMat_1_2));
+             _data_mat[15] = ((real_t)(elMat_1_3));
+             _data_mat[16] = ((real_t)(elMat_1_4));
+             _data_mat[17] = ((real_t)(elMat_1_5));
+             _data_mat[18] = ((real_t)(elMat_1_6));
+             _data_mat[19] = ((real_t)(elMat_1_7));
+             _data_mat[20] = ((real_t)(elMat_1_8));
+             _data_mat[21] = ((real_t)(elMat_1_9));
+             _data_mat[22] = ((real_t)(elMat_1_10));
+             _data_mat[23] = ((real_t)(elMat_1_11));
+             _data_mat[24] = ((real_t)(elMat_2_0));
+             _data_mat[25] = ((real_t)(elMat_2_1));
+             _data_mat[26] = ((real_t)(elMat_2_2));
+             _data_mat[27] = ((real_t)(elMat_2_3));
+             _data_mat[28] = ((real_t)(elMat_2_4));
+             _data_mat[29] = ((real_t)(elMat_2_5));
+             _data_mat[30] = ((real_t)(elMat_2_6));
+             _data_mat[31] = ((real_t)(elMat_2_7));
+             _data_mat[32] = ((real_t)(elMat_2_8));
+             _data_mat[33] = ((real_t)(elMat_2_9));
+             _data_mat[34] = ((real_t)(elMat_2_10));
+             _data_mat[35] = ((real_t)(elMat_2_11));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* FaceType.BLUE */
+          const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE;
+          const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE;
+          const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE;
+          const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE;
+          const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE;
+          const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE;
+          const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE;
+          const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE;
+          const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE;
+          const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE);
+          const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE;
+          const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE;
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             for (int64_t q = 0; q < 4; q += 1)
+             {
+                const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q];
+                const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0;
+                const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0);
+                const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8;
+                const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8;
+                const real_t tmp_qloop_11 = jac_affine_inv_0_0_BLUE*tmp_qloop_9 + jac_affine_inv_1_0_BLUE*tmp_qloop_10;
+                const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q];
+                const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q];
+                const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7;
+                const real_t tmp_qloop_15 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15;
+                const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q];
+                const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]);
+                const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18;
+                const real_t tmp_qloop_20 = jac_affine_inv_0_1_BLUE*tmp_qloop_9 + jac_affine_inv_1_1_BLUE*tmp_qloop_10;
+                const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20;
+                const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q];
+                const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q];
+                const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24;
+                const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22;
+                const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24;
+                const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4;
+                const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6;
+                const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19;
+                const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19;
+                const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19;
+                const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19;
+                const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19;
+                const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6;
+                const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21;
+                const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21;
+                const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21;
+                const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21;
+                const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21;
+                const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6;
+                const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23;
+                const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23;
+                const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25;
+                const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23;
+                const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23;
+                const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6;
+                const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26;
+                const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26;
+                const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27;
+                const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26;
+                const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26;
+                const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6;
+                const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25;
+                const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25;
+                const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28;
+                const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25;
+                const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25;
+                const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6;
+                const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27;
+                const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27;
+                const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28;
+                const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27;
+                const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+         
+             std::vector< uint_t > _data_rowIdx( 3 );
+             std::vector< uint_t > _data_colIdx( 12 );
+             std::vector< real_t > _data_mat( 36 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_src_edge_0[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[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[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[11] = ((uint64_t)(_data_src_edge_1[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] = ((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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_1_0));
+             _data_mat[13] = ((real_t)(elMat_1_1));
+             _data_mat[14] = ((real_t)(elMat_1_2));
+             _data_mat[15] = ((real_t)(elMat_1_3));
+             _data_mat[16] = ((real_t)(elMat_1_4));
+             _data_mat[17] = ((real_t)(elMat_1_5));
+             _data_mat[18] = ((real_t)(elMat_1_6));
+             _data_mat[19] = ((real_t)(elMat_1_7));
+             _data_mat[20] = ((real_t)(elMat_1_8));
+             _data_mat[21] = ((real_t)(elMat_1_9));
+             _data_mat[22] = ((real_t)(elMat_1_10));
+             _data_mat[23] = ((real_t)(elMat_1_11));
+             _data_mat[24] = ((real_t)(elMat_2_0));
+             _data_mat[25] = ((real_t)(elMat_2_1));
+             _data_mat[26] = ((real_t)(elMat_2_2));
+             _data_mat[27] = ((real_t)(elMat_2_3));
+             _data_mat[28] = ((real_t)(elMat_2_4));
+             _data_mat[29] = ((real_t)(elMat_2_5));
+             _data_mat[30] = ((real_t)(elMat_2_6));
+             _data_mat[31] = ((real_t)(elMat_2_7));
+             _data_mat[32] = ((real_t)(elMat_2_8));
+             _data_mat[33] = ((real_t)(elMat_2_9));
+             _data_mat[34] = ((real_t)(elMat_2_10));
+             _data_mat[35] = ((real_t)(elMat_2_11));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0945e0d939022c49e6f992754781d28b7894493a
--- /dev/null
+++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp
@@ -0,0 +1,4786 @@
+/*
+* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm.
+*
+* This file is part of HyTeG
+* (see https://i10git.cs.fau.de/hyteg/hyteg).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+* The entire file was generated with the HyTeG Operator Generator.
+*
+* Avoid modifying this file. If buggy, consider fixing the generator itself.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix_macro_3D( idx_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_rhoEdge, real_t * RESTRICT  _data_rhoVertex, idx_t * RESTRICT  _data_src_edge_0, idx_t * RESTRICT  _data_src_edge_1, idx_t * RESTRICT  _data_src_edge_2, idx_t * RESTRICT  _data_src_vertex_0, idx_t * RESTRICT  _data_src_vertex_1, idx_t * RESTRICT  _data_src_vertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const
+{
+    {
+       const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983};
+   
+       const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666};
+   
+       const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666};
+   
+       const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666};
+   
+       {
+          /* CellType.WHITE_UP */
+          const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0;
+          const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1;
+          const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2;
+          const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP;
+          const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP;
+          const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP;
+          const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP;
+          const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP;
+          const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP;
+          const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP;
+          const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP;
+          const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP;
+          const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP;
+          const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP;
+          const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP;
+          const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP);
+          const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP);
+          const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP);
+          const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP);
+          const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP);
+          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 real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((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[3] = ((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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.WHITE_DOWN */
+          const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN;
+          const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN;
+          const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN;
+          const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN;
+          const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN;
+          const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN;
+          const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN;
+          const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN;
+          const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN;
+          const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN;
+          const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN;
+          const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN;
+          const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN;
+          const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN;
+          const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN;
+          const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN;
+          const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN;
+          const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN;
+          const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN);
+          const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN);
+          const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN);
+          const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN);
+          const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN);
+          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 - 2; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((uint64_t)(_data_dst[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))]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.BLUE_UP */
+          const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP;
+          const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP;
+          const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP;
+          const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP;
+          const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP;
+          const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP;
+          const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP;
+          const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP;
+          const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP;
+          const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP;
+          const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP;
+          const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP;
+          const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP;
+          const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP;
+          const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP;
+          const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP;
+          const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP;
+          const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP;
+          const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP;
+          const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP);
+          const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP);
+          const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP);
+          const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP);
+          const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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[3] = ((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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.BLUE_DOWN */
+          const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN;
+          const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN;
+          const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN;
+          const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN;
+          const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN;
+          const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN;
+          const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN;
+          const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN;
+          const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN;
+          const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN;
+          const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN;
+          const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN;
+          const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN;
+          const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN;
+          const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN;
+          const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN;
+          const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN;
+          const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN);
+          const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN);
+          const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN);
+          const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN);
+          const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.GREEN_UP */
+          const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP;
+          const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP;
+          const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP;
+          const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP;
+          const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP;
+          const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP;
+          const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP;
+          const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP;
+          const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP;
+          const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP;
+          const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP;
+          const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP;
+          const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP;
+          const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP;
+          const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP;
+          const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP;
+          const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP;
+          const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP;
+          const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP;
+          const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP);
+          const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP);
+          const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP);
+          const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP);
+          const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_UP*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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))]));
+             _data_rowIdx[2] = ((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))]));
+             _data_rowIdx[3] = ((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]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+       {
+          /* CellType.GREEN_DOWN */
+          const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0;
+          const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0);
+          const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1);
+          const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2);
+          const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0);
+          const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1);
+          const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2);
+          const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0);
+          const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1);
+          const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2);
+          const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN;
+          const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN;
+          const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN;
+          const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN;
+          const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN;
+          const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN;
+          const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN;
+          const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN;
+          const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN;
+          const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN;
+          const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN;
+          const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN;
+          const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN;
+          const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN;
+          const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN;
+          const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN;
+          const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN;
+          const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN);
+          const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN);
+          const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN);
+          const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN);
+          const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN);
+          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 - 1; ctr_0 += 1)
+          {
+             const real_t p_affine_0_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_0_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_1_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2));
+             const real_t p_affine_2_0 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_1 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_2_2 = 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*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_0 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_1 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1));
+             const real_t p_affine_3_2 = 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*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1));
+             const real_t rho_dof_0 = _data_rhoVertex[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 real_t rho_dof_1 = _data_rhoVertex[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 real_t rho_dof_2 = _data_rhoVertex[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 real_t rho_dof_3 = _data_rhoVertex[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 real_t rho_dof_4 = _data_rhoEdge[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 real_t rho_dof_5 = _data_rhoEdge[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 real_t rho_dof_6 = _data_rhoEdge[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 real_t rho_dof_7 = _data_rhoEdge[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 real_t rho_dof_8 = _data_rhoEdge[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 real_t rho_dof_9 = _data_rhoEdge[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))];
+             real_t q_acc_0_0 = 0.0;
+             real_t q_acc_0_1 = 0.0;
+             real_t q_acc_0_2 = 0.0;
+             real_t q_acc_0_3 = 0.0;
+             real_t q_acc_0_4 = 0.0;
+             real_t q_acc_0_5 = 0.0;
+             real_t q_acc_0_6 = 0.0;
+             real_t q_acc_0_7 = 0.0;
+             real_t q_acc_0_8 = 0.0;
+             real_t q_acc_0_9 = 0.0;
+             real_t q_acc_0_10 = 0.0;
+             real_t q_acc_0_11 = 0.0;
+             real_t q_acc_0_12 = 0.0;
+             real_t q_acc_0_13 = 0.0;
+             real_t q_acc_0_14 = 0.0;
+             real_t q_acc_0_15 = 0.0;
+             real_t q_acc_0_16 = 0.0;
+             real_t q_acc_0_17 = 0.0;
+             real_t q_acc_0_18 = 0.0;
+             real_t q_acc_0_19 = 0.0;
+             real_t q_acc_0_20 = 0.0;
+             real_t q_acc_0_21 = 0.0;
+             real_t q_acc_0_22 = 0.0;
+             real_t q_acc_0_23 = 0.0;
+             real_t q_acc_0_24 = 0.0;
+             real_t q_acc_0_25 = 0.0;
+             real_t q_acc_0_26 = 0.0;
+             real_t q_acc_0_27 = 0.0;
+             real_t q_acc_0_28 = 0.0;
+             real_t q_acc_0_29 = 0.0;
+             real_t q_acc_1_0 = 0.0;
+             real_t q_acc_1_1 = 0.0;
+             real_t q_acc_1_2 = 0.0;
+             real_t q_acc_1_3 = 0.0;
+             real_t q_acc_1_4 = 0.0;
+             real_t q_acc_1_5 = 0.0;
+             real_t q_acc_1_6 = 0.0;
+             real_t q_acc_1_7 = 0.0;
+             real_t q_acc_1_8 = 0.0;
+             real_t q_acc_1_9 = 0.0;
+             real_t q_acc_1_10 = 0.0;
+             real_t q_acc_1_11 = 0.0;
+             real_t q_acc_1_12 = 0.0;
+             real_t q_acc_1_13 = 0.0;
+             real_t q_acc_1_14 = 0.0;
+             real_t q_acc_1_15 = 0.0;
+             real_t q_acc_1_16 = 0.0;
+             real_t q_acc_1_17 = 0.0;
+             real_t q_acc_1_18 = 0.0;
+             real_t q_acc_1_19 = 0.0;
+             real_t q_acc_1_20 = 0.0;
+             real_t q_acc_1_21 = 0.0;
+             real_t q_acc_1_22 = 0.0;
+             real_t q_acc_1_23 = 0.0;
+             real_t q_acc_1_24 = 0.0;
+             real_t q_acc_1_25 = 0.0;
+             real_t q_acc_1_26 = 0.0;
+             real_t q_acc_1_27 = 0.0;
+             real_t q_acc_1_28 = 0.0;
+             real_t q_acc_1_29 = 0.0;
+             real_t q_acc_2_0 = 0.0;
+             real_t q_acc_2_1 = 0.0;
+             real_t q_acc_2_2 = 0.0;
+             real_t q_acc_2_3 = 0.0;
+             real_t q_acc_2_4 = 0.0;
+             real_t q_acc_2_5 = 0.0;
+             real_t q_acc_2_6 = 0.0;
+             real_t q_acc_2_7 = 0.0;
+             real_t q_acc_2_8 = 0.0;
+             real_t q_acc_2_9 = 0.0;
+             real_t q_acc_2_10 = 0.0;
+             real_t q_acc_2_11 = 0.0;
+             real_t q_acc_2_12 = 0.0;
+             real_t q_acc_2_13 = 0.0;
+             real_t q_acc_2_14 = 0.0;
+             real_t q_acc_2_15 = 0.0;
+             real_t q_acc_2_16 = 0.0;
+             real_t q_acc_2_17 = 0.0;
+             real_t q_acc_2_18 = 0.0;
+             real_t q_acc_2_19 = 0.0;
+             real_t q_acc_2_20 = 0.0;
+             real_t q_acc_2_21 = 0.0;
+             real_t q_acc_2_22 = 0.0;
+             real_t q_acc_2_23 = 0.0;
+             real_t q_acc_2_24 = 0.0;
+             real_t q_acc_2_25 = 0.0;
+             real_t q_acc_2_26 = 0.0;
+             real_t q_acc_2_27 = 0.0;
+             real_t q_acc_2_28 = 0.0;
+             real_t q_acc_2_29 = 0.0;
+             real_t q_acc_3_0 = 0.0;
+             real_t q_acc_3_1 = 0.0;
+             real_t q_acc_3_2 = 0.0;
+             real_t q_acc_3_3 = 0.0;
+             real_t q_acc_3_4 = 0.0;
+             real_t q_acc_3_5 = 0.0;
+             real_t q_acc_3_6 = 0.0;
+             real_t q_acc_3_7 = 0.0;
+             real_t q_acc_3_8 = 0.0;
+             real_t q_acc_3_9 = 0.0;
+             real_t q_acc_3_10 = 0.0;
+             real_t q_acc_3_11 = 0.0;
+             real_t q_acc_3_12 = 0.0;
+             real_t q_acc_3_13 = 0.0;
+             real_t q_acc_3_14 = 0.0;
+             real_t q_acc_3_15 = 0.0;
+             real_t q_acc_3_16 = 0.0;
+             real_t q_acc_3_17 = 0.0;
+             real_t q_acc_3_18 = 0.0;
+             real_t q_acc_3_19 = 0.0;
+             real_t q_acc_3_20 = 0.0;
+             real_t q_acc_3_21 = 0.0;
+             real_t q_acc_3_22 = 0.0;
+             real_t q_acc_3_23 = 0.0;
+             real_t q_acc_3_24 = 0.0;
+             real_t q_acc_3_25 = 0.0;
+             real_t q_acc_3_26 = 0.0;
+             real_t q_acc_3_27 = 0.0;
+             real_t q_acc_3_28 = 0.0;
+             real_t q_acc_3_29 = 0.0;
+             for (int64_t q = 0; q < 5; q += 1)
+             {
+                const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]);
+                const real_t tmp_qloop_1 = tmp_qloop_0*2.0;
+                const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]);
+                const real_t tmp_qloop_3 = tmp_qloop_2*2.0;
+                const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]);
+                const real_t tmp_qloop_5 = tmp_qloop_4*2.0;
+                const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q];
+                const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q];
+                const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q];
+                const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q];
+                const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q];
+                const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9;
+                const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0;
+                const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q];
+                const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6;
+                const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6;
+                const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0);
+                const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16;
+                const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17;
+                const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0;
+                const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8;
+                const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20;
+                const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20;
+                const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q];
+                const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q];
+                const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q];
+                const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7;
+                const real_t tmp_qloop_28 = tmp_qloop_2*4.0;
+                const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9;
+                const real_t tmp_qloop_30 = tmp_qloop_0*4.0;
+                const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8;
+                const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q];
+                const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]);
+                const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33;
+                const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35;
+                const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_DOWN*tmp_qloop_22;
+                const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37;
+                const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q];
+                const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39;
+                const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q];
+                const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41;
+                const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9;
+                const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q];
+                const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44;
+                const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39;
+                const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41;
+                const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9;
+                const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44;
+                const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39;
+                const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41;
+                const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9;
+                const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44;
+                const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32;
+                const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8;
+                const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55;
+                const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54;
+                const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4;
+                const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58;
+                const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58;
+                const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34;
+                const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34;
+                const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34;
+                const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34;
+                const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7;
+                const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34;
+                const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9;
+                const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34;
+                const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34;
+                const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34;
+                const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36;
+                const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36;
+                const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36;
+                const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36;
+                const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7;
+                const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36;
+                const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9;
+                const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36;
+                const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36;
+                const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36;
+                const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38;
+                const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38;
+                const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38;
+                const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38;
+                const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7;
+                const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38;
+                const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9;
+                const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38;
+                const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38;
+                const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38;
+                const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40;
+                const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40;
+                const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40;
+                const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40;
+                const real_t q_tmp_1_4 = tmp_qloop_43;
+                const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42;
+                const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45;
+                const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40;
+                const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40;
+                const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40;
+                const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46;
+                const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46;
+                const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46;
+                const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46;
+                const real_t q_tmp_1_14 = tmp_qloop_48;
+                const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47;
+                const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49;
+                const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46;
+                const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46;
+                const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46;
+                const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50;
+                const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50;
+                const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50;
+                const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50;
+                const real_t q_tmp_1_24 = tmp_qloop_52;
+                const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51;
+                const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53;
+                const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50;
+                const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50;
+                const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50;
+                const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45;
+                const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45;
+                const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45;
+                const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45;
+                const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42;
+                const real_t q_tmp_2_5 = tmp_qloop_43;
+                const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55;
+                const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45;
+                const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45;
+                const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45;
+                const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49;
+                const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49;
+                const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49;
+                const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49;
+                const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47;
+                const real_t q_tmp_2_15 = tmp_qloop_48;
+                const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56;
+                const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49;
+                const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49;
+                const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49;
+                const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53;
+                const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53;
+                const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53;
+                const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53;
+                const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51;
+                const real_t q_tmp_2_25 = tmp_qloop_52;
+                const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56;
+                const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53;
+                const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53;
+                const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53;
+                const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42;
+                const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42;
+                const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42;
+                const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42;
+                const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6;
+                const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8;
+                const real_t q_tmp_3_6 = tmp_qloop_43;
+                const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42;
+                const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42;
+                const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42;
+                const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47;
+                const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47;
+                const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47;
+                const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47;
+                const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6;
+                const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8;
+                const real_t q_tmp_3_16 = tmp_qloop_48;
+                const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47;
+                const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47;
+                const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47;
+                const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51;
+                const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51;
+                const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51;
+                const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51;
+                const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60;
+                const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8;
+                const real_t q_tmp_3_26 = tmp_qloop_52;
+                const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51;
+                const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51;
+                const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51;
+                q_acc_0_0 = q_acc_0_0 + q_tmp_0_0;
+                q_acc_0_1 = q_acc_0_1 + q_tmp_0_1;
+                q_acc_0_2 = q_acc_0_2 + q_tmp_0_2;
+                q_acc_0_3 = q_acc_0_3 + q_tmp_0_3;
+                q_acc_0_4 = q_acc_0_4 + q_tmp_0_4;
+                q_acc_0_5 = q_acc_0_5 + q_tmp_0_5;
+                q_acc_0_6 = q_acc_0_6 + q_tmp_0_6;
+                q_acc_0_7 = q_acc_0_7 + q_tmp_0_7;
+                q_acc_0_8 = q_acc_0_8 + q_tmp_0_8;
+                q_acc_0_9 = q_acc_0_9 + q_tmp_0_9;
+                q_acc_0_10 = q_acc_0_10 + q_tmp_0_10;
+                q_acc_0_11 = q_acc_0_11 + q_tmp_0_11;
+                q_acc_0_12 = q_acc_0_12 + q_tmp_0_12;
+                q_acc_0_13 = q_acc_0_13 + q_tmp_0_13;
+                q_acc_0_14 = q_acc_0_14 + q_tmp_0_14;
+                q_acc_0_15 = q_acc_0_15 + q_tmp_0_15;
+                q_acc_0_16 = q_acc_0_16 + q_tmp_0_16;
+                q_acc_0_17 = q_acc_0_17 + q_tmp_0_17;
+                q_acc_0_18 = q_acc_0_18 + q_tmp_0_18;
+                q_acc_0_19 = q_acc_0_19 + q_tmp_0_19;
+                q_acc_0_20 = q_acc_0_20 + q_tmp_0_20;
+                q_acc_0_21 = q_acc_0_21 + q_tmp_0_21;
+                q_acc_0_22 = q_acc_0_22 + q_tmp_0_22;
+                q_acc_0_23 = q_acc_0_23 + q_tmp_0_23;
+                q_acc_0_24 = q_acc_0_24 + q_tmp_0_24;
+                q_acc_0_25 = q_acc_0_25 + q_tmp_0_25;
+                q_acc_0_26 = q_acc_0_26 + q_tmp_0_26;
+                q_acc_0_27 = q_acc_0_27 + q_tmp_0_27;
+                q_acc_0_28 = q_acc_0_28 + q_tmp_0_28;
+                q_acc_0_29 = q_acc_0_29 + q_tmp_0_29;
+                q_acc_1_0 = q_acc_1_0 + q_tmp_1_0;
+                q_acc_1_1 = q_acc_1_1 + q_tmp_1_1;
+                q_acc_1_2 = q_acc_1_2 + q_tmp_1_2;
+                q_acc_1_3 = q_acc_1_3 + q_tmp_1_3;
+                q_acc_1_4 = q_acc_1_4 + q_tmp_1_4;
+                q_acc_1_5 = q_acc_1_5 + q_tmp_1_5;
+                q_acc_1_6 = q_acc_1_6 + q_tmp_1_6;
+                q_acc_1_7 = q_acc_1_7 + q_tmp_1_7;
+                q_acc_1_8 = q_acc_1_8 + q_tmp_1_8;
+                q_acc_1_9 = q_acc_1_9 + q_tmp_1_9;
+                q_acc_1_10 = q_acc_1_10 + q_tmp_1_10;
+                q_acc_1_11 = q_acc_1_11 + q_tmp_1_11;
+                q_acc_1_12 = q_acc_1_12 + q_tmp_1_12;
+                q_acc_1_13 = q_acc_1_13 + q_tmp_1_13;
+                q_acc_1_14 = q_acc_1_14 + q_tmp_1_14;
+                q_acc_1_15 = q_acc_1_15 + q_tmp_1_15;
+                q_acc_1_16 = q_acc_1_16 + q_tmp_1_16;
+                q_acc_1_17 = q_acc_1_17 + q_tmp_1_17;
+                q_acc_1_18 = q_acc_1_18 + q_tmp_1_18;
+                q_acc_1_19 = q_acc_1_19 + q_tmp_1_19;
+                q_acc_1_20 = q_acc_1_20 + q_tmp_1_20;
+                q_acc_1_21 = q_acc_1_21 + q_tmp_1_21;
+                q_acc_1_22 = q_acc_1_22 + q_tmp_1_22;
+                q_acc_1_23 = q_acc_1_23 + q_tmp_1_23;
+                q_acc_1_24 = q_acc_1_24 + q_tmp_1_24;
+                q_acc_1_25 = q_acc_1_25 + q_tmp_1_25;
+                q_acc_1_26 = q_acc_1_26 + q_tmp_1_26;
+                q_acc_1_27 = q_acc_1_27 + q_tmp_1_27;
+                q_acc_1_28 = q_acc_1_28 + q_tmp_1_28;
+                q_acc_1_29 = q_acc_1_29 + q_tmp_1_29;
+                q_acc_2_0 = q_acc_2_0 + q_tmp_2_0;
+                q_acc_2_1 = q_acc_2_1 + q_tmp_2_1;
+                q_acc_2_2 = q_acc_2_2 + q_tmp_2_2;
+                q_acc_2_3 = q_acc_2_3 + q_tmp_2_3;
+                q_acc_2_4 = q_acc_2_4 + q_tmp_2_4;
+                q_acc_2_5 = q_acc_2_5 + q_tmp_2_5;
+                q_acc_2_6 = q_acc_2_6 + q_tmp_2_6;
+                q_acc_2_7 = q_acc_2_7 + q_tmp_2_7;
+                q_acc_2_8 = q_acc_2_8 + q_tmp_2_8;
+                q_acc_2_9 = q_acc_2_9 + q_tmp_2_9;
+                q_acc_2_10 = q_acc_2_10 + q_tmp_2_10;
+                q_acc_2_11 = q_acc_2_11 + q_tmp_2_11;
+                q_acc_2_12 = q_acc_2_12 + q_tmp_2_12;
+                q_acc_2_13 = q_acc_2_13 + q_tmp_2_13;
+                q_acc_2_14 = q_acc_2_14 + q_tmp_2_14;
+                q_acc_2_15 = q_acc_2_15 + q_tmp_2_15;
+                q_acc_2_16 = q_acc_2_16 + q_tmp_2_16;
+                q_acc_2_17 = q_acc_2_17 + q_tmp_2_17;
+                q_acc_2_18 = q_acc_2_18 + q_tmp_2_18;
+                q_acc_2_19 = q_acc_2_19 + q_tmp_2_19;
+                q_acc_2_20 = q_acc_2_20 + q_tmp_2_20;
+                q_acc_2_21 = q_acc_2_21 + q_tmp_2_21;
+                q_acc_2_22 = q_acc_2_22 + q_tmp_2_22;
+                q_acc_2_23 = q_acc_2_23 + q_tmp_2_23;
+                q_acc_2_24 = q_acc_2_24 + q_tmp_2_24;
+                q_acc_2_25 = q_acc_2_25 + q_tmp_2_25;
+                q_acc_2_26 = q_acc_2_26 + q_tmp_2_26;
+                q_acc_2_27 = q_acc_2_27 + q_tmp_2_27;
+                q_acc_2_28 = q_acc_2_28 + q_tmp_2_28;
+                q_acc_2_29 = q_acc_2_29 + q_tmp_2_29;
+                q_acc_3_0 = q_acc_3_0 + q_tmp_3_0;
+                q_acc_3_1 = q_acc_3_1 + q_tmp_3_1;
+                q_acc_3_2 = q_acc_3_2 + q_tmp_3_2;
+                q_acc_3_3 = q_acc_3_3 + q_tmp_3_3;
+                q_acc_3_4 = q_acc_3_4 + q_tmp_3_4;
+                q_acc_3_5 = q_acc_3_5 + q_tmp_3_5;
+                q_acc_3_6 = q_acc_3_6 + q_tmp_3_6;
+                q_acc_3_7 = q_acc_3_7 + q_tmp_3_7;
+                q_acc_3_8 = q_acc_3_8 + q_tmp_3_8;
+                q_acc_3_9 = q_acc_3_9 + q_tmp_3_9;
+                q_acc_3_10 = q_acc_3_10 + q_tmp_3_10;
+                q_acc_3_11 = q_acc_3_11 + q_tmp_3_11;
+                q_acc_3_12 = q_acc_3_12 + q_tmp_3_12;
+                q_acc_3_13 = q_acc_3_13 + q_tmp_3_13;
+                q_acc_3_14 = q_acc_3_14 + q_tmp_3_14;
+                q_acc_3_15 = q_acc_3_15 + q_tmp_3_15;
+                q_acc_3_16 = q_acc_3_16 + q_tmp_3_16;
+                q_acc_3_17 = q_acc_3_17 + q_tmp_3_17;
+                q_acc_3_18 = q_acc_3_18 + q_tmp_3_18;
+                q_acc_3_19 = q_acc_3_19 + q_tmp_3_19;
+                q_acc_3_20 = q_acc_3_20 + q_tmp_3_20;
+                q_acc_3_21 = q_acc_3_21 + q_tmp_3_21;
+                q_acc_3_22 = q_acc_3_22 + q_tmp_3_22;
+                q_acc_3_23 = q_acc_3_23 + q_tmp_3_23;
+                q_acc_3_24 = q_acc_3_24 + q_tmp_3_24;
+                q_acc_3_25 = q_acc_3_25 + q_tmp_3_25;
+                q_acc_3_26 = q_acc_3_26 + q_tmp_3_26;
+                q_acc_3_27 = q_acc_3_27 + q_tmp_3_27;
+                q_acc_3_28 = q_acc_3_28 + q_tmp_3_28;
+                q_acc_3_29 = q_acc_3_29 + q_tmp_3_29;
+             }
+             const real_t elMat_0_0 = q_acc_0_0;
+             const real_t elMat_0_1 = q_acc_0_1;
+             const real_t elMat_0_2 = q_acc_0_2;
+             const real_t elMat_0_3 = q_acc_0_3;
+             const real_t elMat_0_4 = q_acc_0_4;
+             const real_t elMat_0_5 = q_acc_0_5;
+             const real_t elMat_0_6 = q_acc_0_6;
+             const real_t elMat_0_7 = q_acc_0_7;
+             const real_t elMat_0_8 = q_acc_0_8;
+             const real_t elMat_0_9 = q_acc_0_9;
+             const real_t elMat_0_10 = q_acc_0_10;
+             const real_t elMat_0_11 = q_acc_0_11;
+             const real_t elMat_0_12 = q_acc_0_12;
+             const real_t elMat_0_13 = q_acc_0_13;
+             const real_t elMat_0_14 = q_acc_0_14;
+             const real_t elMat_0_15 = q_acc_0_15;
+             const real_t elMat_0_16 = q_acc_0_16;
+             const real_t elMat_0_17 = q_acc_0_17;
+             const real_t elMat_0_18 = q_acc_0_18;
+             const real_t elMat_0_19 = q_acc_0_19;
+             const real_t elMat_0_20 = q_acc_0_20;
+             const real_t elMat_0_21 = q_acc_0_21;
+             const real_t elMat_0_22 = q_acc_0_22;
+             const real_t elMat_0_23 = q_acc_0_23;
+             const real_t elMat_0_24 = q_acc_0_24;
+             const real_t elMat_0_25 = q_acc_0_25;
+             const real_t elMat_0_26 = q_acc_0_26;
+             const real_t elMat_0_27 = q_acc_0_27;
+             const real_t elMat_0_28 = q_acc_0_28;
+             const real_t elMat_0_29 = q_acc_0_29;
+             const real_t elMat_1_0 = q_acc_1_0;
+             const real_t elMat_1_1 = q_acc_1_1;
+             const real_t elMat_1_2 = q_acc_1_2;
+             const real_t elMat_1_3 = q_acc_1_3;
+             const real_t elMat_1_4 = q_acc_1_4;
+             const real_t elMat_1_5 = q_acc_1_5;
+             const real_t elMat_1_6 = q_acc_1_6;
+             const real_t elMat_1_7 = q_acc_1_7;
+             const real_t elMat_1_8 = q_acc_1_8;
+             const real_t elMat_1_9 = q_acc_1_9;
+             const real_t elMat_1_10 = q_acc_1_10;
+             const real_t elMat_1_11 = q_acc_1_11;
+             const real_t elMat_1_12 = q_acc_1_12;
+             const real_t elMat_1_13 = q_acc_1_13;
+             const real_t elMat_1_14 = q_acc_1_14;
+             const real_t elMat_1_15 = q_acc_1_15;
+             const real_t elMat_1_16 = q_acc_1_16;
+             const real_t elMat_1_17 = q_acc_1_17;
+             const real_t elMat_1_18 = q_acc_1_18;
+             const real_t elMat_1_19 = q_acc_1_19;
+             const real_t elMat_1_20 = q_acc_1_20;
+             const real_t elMat_1_21 = q_acc_1_21;
+             const real_t elMat_1_22 = q_acc_1_22;
+             const real_t elMat_1_23 = q_acc_1_23;
+             const real_t elMat_1_24 = q_acc_1_24;
+             const real_t elMat_1_25 = q_acc_1_25;
+             const real_t elMat_1_26 = q_acc_1_26;
+             const real_t elMat_1_27 = q_acc_1_27;
+             const real_t elMat_1_28 = q_acc_1_28;
+             const real_t elMat_1_29 = q_acc_1_29;
+             const real_t elMat_2_0 = q_acc_2_0;
+             const real_t elMat_2_1 = q_acc_2_1;
+             const real_t elMat_2_2 = q_acc_2_2;
+             const real_t elMat_2_3 = q_acc_2_3;
+             const real_t elMat_2_4 = q_acc_2_4;
+             const real_t elMat_2_5 = q_acc_2_5;
+             const real_t elMat_2_6 = q_acc_2_6;
+             const real_t elMat_2_7 = q_acc_2_7;
+             const real_t elMat_2_8 = q_acc_2_8;
+             const real_t elMat_2_9 = q_acc_2_9;
+             const real_t elMat_2_10 = q_acc_2_10;
+             const real_t elMat_2_11 = q_acc_2_11;
+             const real_t elMat_2_12 = q_acc_2_12;
+             const real_t elMat_2_13 = q_acc_2_13;
+             const real_t elMat_2_14 = q_acc_2_14;
+             const real_t elMat_2_15 = q_acc_2_15;
+             const real_t elMat_2_16 = q_acc_2_16;
+             const real_t elMat_2_17 = q_acc_2_17;
+             const real_t elMat_2_18 = q_acc_2_18;
+             const real_t elMat_2_19 = q_acc_2_19;
+             const real_t elMat_2_20 = q_acc_2_20;
+             const real_t elMat_2_21 = q_acc_2_21;
+             const real_t elMat_2_22 = q_acc_2_22;
+             const real_t elMat_2_23 = q_acc_2_23;
+             const real_t elMat_2_24 = q_acc_2_24;
+             const real_t elMat_2_25 = q_acc_2_25;
+             const real_t elMat_2_26 = q_acc_2_26;
+             const real_t elMat_2_27 = q_acc_2_27;
+             const real_t elMat_2_28 = q_acc_2_28;
+             const real_t elMat_2_29 = q_acc_2_29;
+             const real_t elMat_3_0 = q_acc_3_0;
+             const real_t elMat_3_1 = q_acc_3_1;
+             const real_t elMat_3_2 = q_acc_3_2;
+             const real_t elMat_3_3 = q_acc_3_3;
+             const real_t elMat_3_4 = q_acc_3_4;
+             const real_t elMat_3_5 = q_acc_3_5;
+             const real_t elMat_3_6 = q_acc_3_6;
+             const real_t elMat_3_7 = q_acc_3_7;
+             const real_t elMat_3_8 = q_acc_3_8;
+             const real_t elMat_3_9 = q_acc_3_9;
+             const real_t elMat_3_10 = q_acc_3_10;
+             const real_t elMat_3_11 = q_acc_3_11;
+             const real_t elMat_3_12 = q_acc_3_12;
+             const real_t elMat_3_13 = q_acc_3_13;
+             const real_t elMat_3_14 = q_acc_3_14;
+             const real_t elMat_3_15 = q_acc_3_15;
+             const real_t elMat_3_16 = q_acc_3_16;
+             const real_t elMat_3_17 = q_acc_3_17;
+             const real_t elMat_3_18 = q_acc_3_18;
+             const real_t elMat_3_19 = q_acc_3_19;
+             const real_t elMat_3_20 = q_acc_3_20;
+             const real_t elMat_3_21 = q_acc_3_21;
+             const real_t elMat_3_22 = q_acc_3_22;
+             const real_t elMat_3_23 = q_acc_3_23;
+             const real_t elMat_3_24 = q_acc_3_24;
+             const real_t elMat_3_25 = q_acc_3_25;
+             const real_t elMat_3_26 = q_acc_3_26;
+             const real_t elMat_3_27 = q_acc_3_27;
+             const real_t elMat_3_28 = q_acc_3_28;
+             const real_t elMat_3_29 = q_acc_3_29;
+         
+             std::vector< uint_t > _data_rowIdx( 4 );
+             std::vector< uint_t > _data_colIdx( 30 );
+             std::vector< real_t > _data_mat( 120 );
+         
+             _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]));
+             _data_rowIdx[2] = ((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]));
+             _data_rowIdx[3] = ((uint64_t)(_data_dst[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))]));
+             _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[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_colIdx[1] = ((uint64_t)(_data_src_vertex_0[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_colIdx[2] = ((uint64_t)(_data_src_vertex_0[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]));
+             _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[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))]));
+             _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[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_colIdx[5] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[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_colIdx[7] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[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))]));
+             _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[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_colIdx[11] = ((uint64_t)(_data_src_vertex_1[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_colIdx[12] = ((uint64_t)(_data_src_vertex_1[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]));
+             _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[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))]));
+             _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[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_colIdx[15] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[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_colIdx[17] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[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))]));
+             _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[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_colIdx[21] = ((uint64_t)(_data_src_vertex_2[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_colIdx[22] = ((uint64_t)(_data_src_vertex_2[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]));
+             _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[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))]));
+             _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[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_colIdx[25] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[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_colIdx[27] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[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))]));
+             _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[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))]));
+         
+             /* Apply basis transformation */
+         
+         
+         
+             _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_0_10));
+             _data_mat[11] = ((real_t)(elMat_0_11));
+             _data_mat[12] = ((real_t)(elMat_0_12));
+             _data_mat[13] = ((real_t)(elMat_0_13));
+             _data_mat[14] = ((real_t)(elMat_0_14));
+             _data_mat[15] = ((real_t)(elMat_0_15));
+             _data_mat[16] = ((real_t)(elMat_0_16));
+             _data_mat[17] = ((real_t)(elMat_0_17));
+             _data_mat[18] = ((real_t)(elMat_0_18));
+             _data_mat[19] = ((real_t)(elMat_0_19));
+             _data_mat[20] = ((real_t)(elMat_0_20));
+             _data_mat[21] = ((real_t)(elMat_0_21));
+             _data_mat[22] = ((real_t)(elMat_0_22));
+             _data_mat[23] = ((real_t)(elMat_0_23));
+             _data_mat[24] = ((real_t)(elMat_0_24));
+             _data_mat[25] = ((real_t)(elMat_0_25));
+             _data_mat[26] = ((real_t)(elMat_0_26));
+             _data_mat[27] = ((real_t)(elMat_0_27));
+             _data_mat[28] = ((real_t)(elMat_0_28));
+             _data_mat[29] = ((real_t)(elMat_0_29));
+             _data_mat[30] = ((real_t)(elMat_1_0));
+             _data_mat[31] = ((real_t)(elMat_1_1));
+             _data_mat[32] = ((real_t)(elMat_1_2));
+             _data_mat[33] = ((real_t)(elMat_1_3));
+             _data_mat[34] = ((real_t)(elMat_1_4));
+             _data_mat[35] = ((real_t)(elMat_1_5));
+             _data_mat[36] = ((real_t)(elMat_1_6));
+             _data_mat[37] = ((real_t)(elMat_1_7));
+             _data_mat[38] = ((real_t)(elMat_1_8));
+             _data_mat[39] = ((real_t)(elMat_1_9));
+             _data_mat[40] = ((real_t)(elMat_1_10));
+             _data_mat[41] = ((real_t)(elMat_1_11));
+             _data_mat[42] = ((real_t)(elMat_1_12));
+             _data_mat[43] = ((real_t)(elMat_1_13));
+             _data_mat[44] = ((real_t)(elMat_1_14));
+             _data_mat[45] = ((real_t)(elMat_1_15));
+             _data_mat[46] = ((real_t)(elMat_1_16));
+             _data_mat[47] = ((real_t)(elMat_1_17));
+             _data_mat[48] = ((real_t)(elMat_1_18));
+             _data_mat[49] = ((real_t)(elMat_1_19));
+             _data_mat[50] = ((real_t)(elMat_1_20));
+             _data_mat[51] = ((real_t)(elMat_1_21));
+             _data_mat[52] = ((real_t)(elMat_1_22));
+             _data_mat[53] = ((real_t)(elMat_1_23));
+             _data_mat[54] = ((real_t)(elMat_1_24));
+             _data_mat[55] = ((real_t)(elMat_1_25));
+             _data_mat[56] = ((real_t)(elMat_1_26));
+             _data_mat[57] = ((real_t)(elMat_1_27));
+             _data_mat[58] = ((real_t)(elMat_1_28));
+             _data_mat[59] = ((real_t)(elMat_1_29));
+             _data_mat[60] = ((real_t)(elMat_2_0));
+             _data_mat[61] = ((real_t)(elMat_2_1));
+             _data_mat[62] = ((real_t)(elMat_2_2));
+             _data_mat[63] = ((real_t)(elMat_2_3));
+             _data_mat[64] = ((real_t)(elMat_2_4));
+             _data_mat[65] = ((real_t)(elMat_2_5));
+             _data_mat[66] = ((real_t)(elMat_2_6));
+             _data_mat[67] = ((real_t)(elMat_2_7));
+             _data_mat[68] = ((real_t)(elMat_2_8));
+             _data_mat[69] = ((real_t)(elMat_2_9));
+             _data_mat[70] = ((real_t)(elMat_2_10));
+             _data_mat[71] = ((real_t)(elMat_2_11));
+             _data_mat[72] = ((real_t)(elMat_2_12));
+             _data_mat[73] = ((real_t)(elMat_2_13));
+             _data_mat[74] = ((real_t)(elMat_2_14));
+             _data_mat[75] = ((real_t)(elMat_2_15));
+             _data_mat[76] = ((real_t)(elMat_2_16));
+             _data_mat[77] = ((real_t)(elMat_2_17));
+             _data_mat[78] = ((real_t)(elMat_2_18));
+             _data_mat[79] = ((real_t)(elMat_2_19));
+             _data_mat[80] = ((real_t)(elMat_2_20));
+             _data_mat[81] = ((real_t)(elMat_2_21));
+             _data_mat[82] = ((real_t)(elMat_2_22));
+             _data_mat[83] = ((real_t)(elMat_2_23));
+             _data_mat[84] = ((real_t)(elMat_2_24));
+             _data_mat[85] = ((real_t)(elMat_2_25));
+             _data_mat[86] = ((real_t)(elMat_2_26));
+             _data_mat[87] = ((real_t)(elMat_2_27));
+             _data_mat[88] = ((real_t)(elMat_2_28));
+             _data_mat[89] = ((real_t)(elMat_2_29));
+             _data_mat[90] = ((real_t)(elMat_3_0));
+             _data_mat[91] = ((real_t)(elMat_3_1));
+             _data_mat[92] = ((real_t)(elMat_3_2));
+             _data_mat[93] = ((real_t)(elMat_3_3));
+             _data_mat[94] = ((real_t)(elMat_3_4));
+             _data_mat[95] = ((real_t)(elMat_3_5));
+             _data_mat[96] = ((real_t)(elMat_3_6));
+             _data_mat[97] = ((real_t)(elMat_3_7));
+             _data_mat[98] = ((real_t)(elMat_3_8));
+             _data_mat[99] = ((real_t)(elMat_3_9));
+             _data_mat[100] = ((real_t)(elMat_3_10));
+             _data_mat[101] = ((real_t)(elMat_3_11));
+             _data_mat[102] = ((real_t)(elMat_3_12));
+             _data_mat[103] = ((real_t)(elMat_3_13));
+             _data_mat[104] = ((real_t)(elMat_3_14));
+             _data_mat[105] = ((real_t)(elMat_3_15));
+             _data_mat[106] = ((real_t)(elMat_3_16));
+             _data_mat[107] = ((real_t)(elMat_3_17));
+             _data_mat[108] = ((real_t)(elMat_3_18));
+             _data_mat[109] = ((real_t)(elMat_3_19));
+             _data_mat[110] = ((real_t)(elMat_3_20));
+             _data_mat[111] = ((real_t)(elMat_3_21));
+             _data_mat[112] = ((real_t)(elMat_3_22));
+             _data_mat[113] = ((real_t)(elMat_3_23));
+             _data_mat[114] = ((real_t)(elMat_3_24));
+             _data_mat[115] = ((real_t)(elMat_3_25));
+             _data_mat[116] = ((real_t)(elMat_3_26));
+             _data_mat[117] = ((real_t)(elMat_3_27));
+             _data_mat[118] = ((real_t)(elMat_3_28));
+             _data_mat[119] = ((real_t)(elMat_3_29));
+         
+         
+             mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg