diff --git a/generate/generate.py b/generate/generate.py
index 507a0847802dfdfc79b5c302d0d70b3aa4eea8ba..d3d2543fe6ac8b1e95bfd5c82689acb6caf9fbfe 100644
--- a/generate/generate.py
+++ b/generate/generate.py
@@ -265,6 +265,7 @@ def generate_operator(
             function_space.LagrangianFunctionSpace(2, symbolizer)
         ),
         "N1E1": function_space.N1E1Space(symbolizer),
+        "P2PlusBubble": function_space.P2PlusBubbleSpace(symbolizer),
     }
     geometries = {
         2: element_geometry.TriangleElement(),
diff --git a/generate/requirements.txt b/generate/requirements.txt
index bbd26127afcac40b2a4236ec495adcf0e6c85ebb..0c22a907508b5e753ff525519e77217797e621d1 100644
--- a/generate/requirements.txt
+++ b/generate/requirements.txt
@@ -1,10 +1,10 @@
 --extra-index-url https://test.pypi.org/simple/
 
 # users with account on i10git.cs.fau.de can use ssh
-# hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@5cecb2d0c7cfb2449f80f6069a4fb6b4b3cb312d
+# hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@480cb0b5363ea1f4ba2be14d6a91cde5e2ddbdd2
 
 # others should prefer https
-hog @ git+https://i10git.cs.fau.de/hyteg/hog@5cecb2d0c7cfb2449f80f6069a4fb6b4b3cb312d
+hog @ git+https://i10git.cs.fau.de/hyteg/hog@480cb0b5363ea1f4ba2be14d6a91cde5e2ddbdd2
 
 tomli >= 1.1.0 ; python_version < "3.11"
 clang-format
diff --git a/operators-diffusion.toml b/operators-diffusion.toml
index 5124cc2eee13f9b9736ff8fa84aae7bbcc0a4484..7da0764762e8656b3e6793f6764f3e6d121a0502 100644
--- a/operators-diffusion.toml
+++ b/operators-diffusion.toml
@@ -23,6 +23,14 @@ quadrature    = 2
 loop-strategy = "cubes"
 optimizations = ["moveconstants", "vectorize"]
 
+[[diffusion]]
+trial-space   = "P2PlusBubble"
+test-space    = "P2PlusBubble"
+dimensions    = [2]
+quadrature    = 4
+loop-strategy = "cubes"
+optimizations = ["moveconstants", "vectorize"]
+
 [[diffusion]]
 trial-space   = "P2"
 test-space    = "P2"
diff --git a/operators/diffusion/CMakeLists.txt b/operators/diffusion/CMakeLists.txt
index b740949084c56eb3e4a3a2ef7e028f34d6047213..2b64ec74e7aa3e2b07314816c428634bc07a3be3 100644
--- a/operators/diffusion/CMakeLists.txt
+++ b/operators/diffusion/CMakeLists.txt
@@ -12,6 +12,8 @@ add_library( opgen-diffusion
    P2ElementwiseDiffusionIcosahedralShellMap.hpp
    P2ElementwiseDiffusionParametricP2Map.cpp
    P2ElementwiseDiffusionParametricP2Map.hpp
+   P2PlusBubbleElementwiseDiffusion.cpp
+   P2PlusBubbleElementwiseDiffusion.hpp
 )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
@@ -37,6 +39,8 @@ if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
       avx/P2ElementwiseDiffusion_apply_P2ElementwiseDiffusion_macro_3D.cpp
       avx/P2ElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2ElementwiseDiffusion_macro_2D.cpp
       avx/P2ElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2ElementwiseDiffusion_macro_3D.cpp
+      avx/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
+      avx/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
       noarch/P1ElementwiseDiffusionParametricP1Map_toMatrix_P1ElementwiseDiffusionParametricP1Map_macro_2D.cpp
       noarch/P1ElementwiseDiffusionParametricP1Map_toMatrix_P1ElementwiseDiffusionParametricP1Map_macro_3D.cpp
       noarch/P1ElementwiseDiffusion_toMatrix_P1ElementwiseDiffusion_macro_2D.cpp
@@ -47,6 +51,7 @@ if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
       noarch/P2ElementwiseDiffusionParametricP2Map_toMatrix_P2ElementwiseDiffusionParametricP2Map_macro_3D.cpp
       noarch/P2ElementwiseDiffusion_toMatrix_P2ElementwiseDiffusion_macro_2D.cpp
       noarch/P2ElementwiseDiffusion_toMatrix_P2ElementwiseDiffusion_macro_3D.cpp
+      noarch/P2PlusBubbleElementwiseDiffusion_toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
    )
 
    set_source_files_properties(
@@ -71,6 +76,8 @@ if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
       avx/P2ElementwiseDiffusion_apply_P2ElementwiseDiffusion_macro_3D.cpp
       avx/P2ElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2ElementwiseDiffusion_macro_2D.cpp
       avx/P2ElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2ElementwiseDiffusion_macro_3D.cpp
+      avx/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
+      avx/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
 
       PROPERTIES COMPILE_OPTIONS ${HYTEG_COMPILER_NATIVE_FLAGS}
    )
@@ -111,6 +118,9 @@ else()
       noarch/P2ElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2ElementwiseDiffusion_macro_3D.cpp
       noarch/P2ElementwiseDiffusion_toMatrix_P2ElementwiseDiffusion_macro_2D.cpp
       noarch/P2ElementwiseDiffusion_toMatrix_P2ElementwiseDiffusion_macro_3D.cpp
+      noarch/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
+      noarch/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
+      noarch/P2PlusBubbleElementwiseDiffusion_toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
    )
 endif()
 
diff --git a/operators/diffusion/P2PlusBubbleElementwiseDiffusion.cpp b/operators/diffusion/P2PlusBubbleElementwiseDiffusion.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..594595700aecf70473365d038c7ee6e9a3948d63
--- /dev/null
+++ b/operators/diffusion/P2PlusBubbleElementwiseDiffusion.cpp
@@ -0,0 +1,339 @@
+/*
+* 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 "P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+P2PlusBubbleElementwiseDiffusion::P2PlusBubbleElementwiseDiffusion( const std::shared_ptr< PrimitiveStorage >& storage,
+                                                                    size_t                                     minLevel,
+                                                                    size_t                                     maxLevel )
+: Operator( storage, minLevel, maxLevel )
+{}
+
+void P2PlusBubbleElementwiseDiffusion::apply( const P2PlusBubbleFunction< real_t >& src,
+                                              const P2PlusBubbleFunction< 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::syncFunctionBetweenPrimitives( src, 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_srcVertex = face.getData( src.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_srcEdge   = face.getData( src.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_src       = src.getVolumeDoFFunction().dofMemory( it.first, level );
+         real_t* _data_dstVertex = face.getData( dst.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_dstEdge   = face.getData( dst.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         real_t* _data_dst       = dst.getVolumeDoFFunction().dofMemory( it.first, 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_dstVertex[arrayIdx] = walberla::numeric_cast< real_t >( 0 );
+            }
+         }
+         for ( const auto& idx : edgedof::macroface::Iterator( level ) )
+         {
+            for ( const auto& orientation : edgedof::faceLocalEdgeDoFOrientations )
+            {
+               if ( !edgedof::macroface::isInnerEdgeDoF( level, idx, orientation ) )
+               {
+                  auto arrayIdx           = edgedof::macroface::index( level, idx.x(), idx.y(), orientation );
+                  _data_dstEdge[arrayIdx] = walberla::numeric_cast< real_t >( 0 );
+               }
+            }
+         }
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   num_microfaces_per_face          = (int64_t) levelinfo::num_microfaces_per_face( 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_P2PlusBubbleElementwiseDiffusion_macro_2D(
+
+             _data_dst,
+             _data_dstEdge,
+             _data_dstVertex,
+             _data_src,
+             _data_srcEdge,
+             _data_srcVertex,
+             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.getVertexDoFFunction().communicateAdditively< Face, Edge >(
+          level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.getVertexDoFFunction().communicateAdditively< Face, Vertex >(
+          level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      dst.getEdgeDoFFunction().communicateAdditively< Face, Edge >(
+          level, DoFType::All ^ flag, *storage_, updateType == Replace );
+      this->timingTree_->stop( "post-communication" );
+   }
+
+   this->stopTiming( "apply" );
+}
+void P2PlusBubbleElementwiseDiffusion::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                                                 const P2PlusBubbleFunction< idx_t >&        src,
+                                                 const P2PlusBubbleFunction< 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" );
+
+      this->timingTree_->stop( "pre-communication" );
+
+      WALBERLA_ABORT( "Not implemented." );
+   }
+   else
+   {
+      this->timingTree_->start( "pre-communication" );
+
+      this->timingTree_->stop( "pre-communication" );
+
+      for ( auto& it : storage_->getFaces() )
+      {
+         Face& face = *it.second;
+
+         // get hold of the actual numerical data
+         idx_t* _data_srcVertex = face.getData( src.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_srcEdge   = face.getData( src.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_src       = src.getVolumeDoFFunction().dofMemory( it.first, level );
+         idx_t* _data_dstVertex = face.getData( dst.getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_dstEdge   = face.getData( dst.getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+         idx_t* _data_dst       = dst.getVolumeDoFFunction().dofMemory( it.first, level );
+
+         const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+         const auto   num_microfaces_per_face          = (int64_t) levelinfo::num_microfaces_per_face( 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_P2PlusBubbleElementwiseDiffusion_macro_2D(
+
+             _data_dst,
+             _data_dstEdge,
+             _data_dstVertex,
+             _data_src,
+             _data_srcEdge,
+             _data_srcVertex,
+             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" );
+}
+void P2PlusBubbleElementwiseDiffusion::computeInverseDiagonalOperatorValues()
+{
+   this->startTiming( "computeInverseDiagonalOperatorValues" );
+
+   if ( invDiag_ == nullptr )
+   {
+      invDiag_ = std::make_shared< P2PlusBubbleFunction< real_t > >( "inverse diagonal entries", storage_, minLevel_, maxLevel_ );
+   }
+
+   for ( uint_t level = minLevel_; level <= maxLevel_; level++ )
+   {
+      invDiag_->setToZero( level );
+
+      if ( storage_->hasGlobalCells() )
+      {
+         this->timingTree_->start( "pre-communication" );
+
+         this->timingTree_->stop( "pre-communication" );
+
+         WALBERLA_ABORT( "Not implemented." );
+         ( *invDiag_ ).invertElementwise( level );
+      }
+      else
+      {
+         this->timingTree_->start( "pre-communication" );
+
+         this->timingTree_->stop( "pre-communication" );
+
+         for ( auto& it : storage_->getFaces() )
+         {
+            Face& face = *it.second;
+
+            // get hold of the actual numerical data
+            real_t* _data_invDiag_Vertex =
+                face.getData( ( *invDiag_ ).getVertexDoFFunction().getFaceDataID() )->getPointer( level );
+            real_t* _data_invDiag_Edge = face.getData( ( *invDiag_ ).getEdgeDoFFunction().getFaceDataID() )->getPointer( level );
+            real_t* _data_invDiag_     = ( *invDiag_ ).getVolumeDoFFunction().dofMemory( it.first, level );
+
+            const auto   micro_edges_per_macro_edge       = (int64_t) levelinfo::num_microedges_per_edge( level );
+            const auto   num_microfaces_per_face          = (int64_t) levelinfo::num_microfaces_per_face( 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" );
+
+            computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D(
+
+                _data_invDiag_,
+                _data_invDiag_Edge,
+                _data_invDiag_Vertex,
+                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!
+         ( *invDiag_ ).getVertexDoFFunction().communicateAdditively< Face, Edge >( level );
+         ( *invDiag_ ).getVertexDoFFunction().communicateAdditively< Face, Vertex >( level );
+         ( *invDiag_ ).getEdgeDoFFunction().communicateAdditively< Face, Edge >( level );
+         this->timingTree_->stop( "post-communication" );
+         ( *invDiag_ ).invertElementwise( level );
+      }
+   }
+
+   this->stopTiming( "computeInverseDiagonalOperatorValues" );
+}
+std::shared_ptr< P2PlusBubbleFunction< real_t > > P2PlusBubbleElementwiseDiffusion::getInverseDiagonalValues() const
+{
+   return invDiag_;
+}
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/P2PlusBubbleElementwiseDiffusion.hpp b/operators/diffusion/P2PlusBubbleElementwiseDiffusion.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..cdc345c9a660925ea36bc3eaaeaf491f825334e7
--- /dev/null
+++ b/operators/diffusion/P2PlusBubbleElementwiseDiffusion.hpp
@@ -0,0 +1,166 @@
+/*
+* 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/boundary/BoundaryConditions.hpp"
+#include "hyteg/communication/Syncing.hpp"
+#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp"
+#include "hyteg/experimental/P2PlusBubbleFunction.hpp"
+#include "hyteg/operators/Operator.hpp"
+#include "hyteg/primitivestorage/PrimitiveStorage.hpp"
+#include "hyteg/solvers/Smoothables.hpp"
+#include "hyteg/sparseassembly/SparseMatrixProxy.hpp"
+#include "hyteg/types/types.hpp"
+
+#define FUNC_PREFIX
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+/// Diffusion operator without coefficients.
+///
+/// Geometry map: IdentityMap
+///
+/// Weak formulation
+///
+///     u: trial function (space: P2PlusBubble)
+///     v: test function  (space: P2PlusBubble)
+///
+///     ∫ ∇u : ∇v
+///
+///     Note that the double contraction (:) reduces to the dot product for scalar function spaces, i.e. the form becomes
+///
+///     ∫ ∇u · ∇v
+
+class P2PlusBubbleElementwiseDiffusion : public Operator< P2PlusBubbleFunction< real_t >, P2PlusBubbleFunction< real_t > >,
+                                         public OperatorWithInverseDiagonal< P2PlusBubbleFunction< real_t > >
+{
+ public:
+   P2PlusBubbleElementwiseDiffusion( const std::shared_ptr< PrimitiveStorage >& storage, size_t minLevel, size_t maxLevel );
+
+   void apply( const P2PlusBubbleFunction< real_t >& src,
+               const P2PlusBubbleFunction< real_t >& dst,
+               uint_t                                level,
+               DoFType                               flag,
+               UpdateType                            updateType = Replace ) const;
+
+   void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat,
+                  const P2PlusBubbleFunction< idx_t >&        src,
+                  const P2PlusBubbleFunction< idx_t >&        dst,
+                  uint_t                                      level,
+                  DoFType                                     flag ) const;
+
+   void computeInverseDiagonalOperatorValues();
+
+   std::shared_ptr< P2PlusBubbleFunction< real_t > > getInverseDiagonalValues() const;
+
+ protected:
+ private:
+   /// Integral: P2PlusBubbleElementwiseDiffusion
+   /// - volume element:  triangle, dim: 2, vertices: 3, spacedim: 2
+   /// - kernel type:     apply
+   /// - loop strategy:   CUBES
+   /// - quadrature rule: Dunavant 4 | points: 6, degree: 4
+   /// - blending map:    IdentityMap
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    485     723      12       0      0              0                 0              1
+   void apply_P2PlusBubbleElementwiseDiffusion_macro_2D( real_t* RESTRICT _data_dst,
+                                                         real_t* RESTRICT _data_dstEdge,
+                                                         real_t* RESTRICT _data_dstVertex,
+                                                         real_t* RESTRICT _data_src,
+                                                         real_t* RESTRICT _data_srcEdge,
+                                                         real_t* RESTRICT _data_srcVertex,
+                                                         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;
+
+   /// Integral: P2PlusBubbleElementwiseDiffusion
+   /// - volume element:  triangle, dim: 2, vertices: 3, spacedim: 2
+   /// - kernel type:     toMatrix
+   /// - loop strategy:   CUBES
+   /// - quadrature rule: Dunavant 4 | points: 6, degree: 4
+   /// - blending map:    IdentityMap
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    436     674      12       0      0              0                 0              4
+   void toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D( idx_t* RESTRICT                      _data_dst,
+                                                            idx_t* RESTRICT                      _data_dstEdge,
+                                                            idx_t* RESTRICT                      _data_dstVertex,
+                                                            idx_t* RESTRICT                      _data_src,
+                                                            idx_t* RESTRICT                      _data_srcEdge,
+                                                            idx_t* RESTRICT                      _data_srcVertex,
+                                                            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;
+
+   /// Integral: P2PlusBubbleElementwiseDiffusion
+   /// - volume element:  triangle, dim: 2, vertices: 3, spacedim: 2
+   /// - kernel type:     computeInverseDiagonalOperatorValues
+   /// - loop strategy:   CUBES
+   /// - quadrature rule: Dunavant 4 | points: 6, degree: 4
+   /// - blending map:    IdentityMap
+   /// - operations per element:
+   ///   adds    muls    divs    pows    abs    assignments    function_calls    unknown_ops
+   /// ------  ------  ------  ------  -----  -------------  ----------------  -------------
+   ///    212     272      12       0      0              0                 0              1
+   void computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D(
+       real_t* RESTRICT _data_invDiag_,
+       real_t* RESTRICT _data_invDiag_Edge,
+       real_t* RESTRICT _data_invDiag_Vertex,
+       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;
+
+   std::shared_ptr< P2PlusBubbleFunction< real_t > > invDiag_;
+};
+
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp b/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e0a790f02b1c2bc536c9ccf5cff0acce108ca087
--- /dev/null
+++ b/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
@@ -0,0 +1,698 @@
+/*
+* 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 "../P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2PlusBubbleElementwiseDiffusion::apply_P2PlusBubbleElementwiseDiffusion_macro_2D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_dstEdge, real_t * RESTRICT  _data_dstVertex, real_t * RESTRICT  _data_src, real_t * RESTRICT  _data_srcEdge, real_t * RESTRICT  _data_srcVertex, 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 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 = jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE;
+       const real_t tmp_coords_jac_6_BLUE = 1.0 / (tmp_coords_jac_5_BLUE);
+       const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t abs_det_jac_affine_BLUE = abs(tmp_coords_jac_5_BLUE);
+       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 = jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY;
+       const real_t tmp_coords_jac_2_GRAY = 1.0 / (tmp_coords_jac_1_GRAY);
+       const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t abs_det_jac_affine_GRAY = abs(tmp_coords_jac_1_GRAY);
+       const real_t tmp_kernel_op_0 = 1.7837939636638596;
+       const real_t tmp_kernel_op_1 = 0.43241207267228088;
+       const real_t tmp_kernel_op_2 = tmp_kernel_op_0 + tmp_kernel_op_1 - 3.0;
+       const real_t tmp_kernel_op_3 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_4 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_5 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_6 = 0.36630485403908286;
+       const real_t tmp_kernel_op_7 = 3.2673902919218341;
+       const real_t tmp_kernel_op_8 = tmp_kernel_op_6 + tmp_kernel_op_7 - 3.0;
+       const real_t tmp_kernel_op_9 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_10 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_11 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_12 = 0.43241207267228088;
+       const real_t tmp_kernel_op_13 = 1.7837939636638596;
+       const real_t tmp_kernel_op_14 = tmp_kernel_op_12 + tmp_kernel_op_13 - 3.0;
+       const real_t tmp_kernel_op_15 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_16 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_17 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_18 = 3.2673902919218341;
+       const real_t tmp_kernel_op_19 = 0.36630485403908286;
+       const real_t tmp_kernel_op_20 = tmp_kernel_op_18 + tmp_kernel_op_19 - 3.0;
+       const real_t tmp_kernel_op_21 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_22 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_23 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_24 = 1.7837939636638596;
+       const real_t tmp_kernel_op_25 = 1.7837939636638596;
+       const real_t tmp_kernel_op_26 = tmp_kernel_op_24 + tmp_kernel_op_25 - 3.0;
+       const real_t tmp_kernel_op_27 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_28 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_29 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_30 = 0.36630485403908286;
+       const real_t tmp_kernel_op_31 = 0.36630485403908286;
+       const real_t tmp_kernel_op_32 = tmp_kernel_op_30 + tmp_kernel_op_31 - 3.0;
+       const real_t tmp_kernel_op_33 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_34 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_35 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_36 = tmp_kernel_op_0 - 1.0;
+       const real_t tmp_kernel_op_37 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_38 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_39 = tmp_kernel_op_6 - 1.0;
+       const real_t tmp_kernel_op_40 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_41 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_42 = tmp_kernel_op_12 - 1.0;
+       const real_t tmp_kernel_op_43 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_44 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_45 = tmp_kernel_op_18 - 1.0;
+       const real_t tmp_kernel_op_46 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_47 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_48 = tmp_kernel_op_24 - 1.0;
+       const real_t tmp_kernel_op_49 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_50 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_51 = tmp_kernel_op_30 - 1.0;
+       const real_t tmp_kernel_op_52 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_53 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_54 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_41 + tmp_kernel_op_40*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_43 + tmp_kernel_op_16*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_46 + tmp_kernel_op_22*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_49 + tmp_kernel_op_28*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_52 + tmp_kernel_op_34*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_37 + tmp_kernel_op_38*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_55 = tmp_kernel_op_1 - 1.0;
+       const real_t tmp_kernel_op_56 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_57 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_58 = tmp_kernel_op_7 - 1.0;
+       const real_t tmp_kernel_op_59 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_60 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_61 = tmp_kernel_op_13 - 1.0;
+       const real_t tmp_kernel_op_62 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_63 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_64 = tmp_kernel_op_19 - 1.0;
+       const real_t tmp_kernel_op_65 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_66 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_67 = tmp_kernel_op_25 - 1.0;
+       const real_t tmp_kernel_op_68 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_69 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_70 = tmp_kernel_op_31 - 1.0;
+       const real_t tmp_kernel_op_71 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_72 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_73 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_60 + tmp_kernel_op_59*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_62 + tmp_kernel_op_16*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_65 + tmp_kernel_op_22*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_68 + tmp_kernel_op_28*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_71 + tmp_kernel_op_34*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_56 + tmp_kernel_op_4*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_74 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_75 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_76 = tmp_kernel_op_74 + tmp_kernel_op_75;
+       const real_t tmp_kernel_op_77 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_78 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_79 = tmp_kernel_op_77 + tmp_kernel_op_78;
+       const real_t tmp_kernel_op_80 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_81 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_82 = tmp_kernel_op_80 + tmp_kernel_op_81;
+       const real_t tmp_kernel_op_83 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_84 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_85 = tmp_kernel_op_83 + tmp_kernel_op_84;
+       const real_t tmp_kernel_op_86 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_87 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_88 = tmp_kernel_op_86 + tmp_kernel_op_87;
+       const real_t tmp_kernel_op_89 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_90 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_91 = tmp_kernel_op_89 + tmp_kernel_op_90;
+       const real_t tmp_kernel_op_92 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_93 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_94 = tmp_kernel_op_92 + tmp_kernel_op_93;
+       const real_t tmp_kernel_op_95 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_96 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_97 = tmp_kernel_op_95 + tmp_kernel_op_96;
+       const real_t tmp_kernel_op_98 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_99 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_100 = tmp_kernel_op_98 + tmp_kernel_op_99;
+       const real_t tmp_kernel_op_101 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_102 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_103 = tmp_kernel_op_101 + tmp_kernel_op_102;
+       const real_t tmp_kernel_op_104 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_105 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_106 = tmp_kernel_op_104 + tmp_kernel_op_105;
+       const real_t tmp_kernel_op_107 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_108 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_109 = tmp_kernel_op_107 + tmp_kernel_op_108;
+       const real_t tmp_kernel_op_110 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_85 + tmp_kernel_op_82*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_88 + tmp_kernel_op_16*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_94 + tmp_kernel_op_22*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_27 + tmp_kernel_op_103*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_33 + tmp_kernel_op_109*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_76 + tmp_kernel_op_4*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_111 = -tmp_kernel_op_0 + 3.1351758546554382;
+       const real_t tmp_kernel_op_112 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_111 - tmp_kernel_op_74;
+       const real_t tmp_kernel_op_113 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_111 - tmp_kernel_op_77;
+       const real_t tmp_kernel_op_114 = -tmp_kernel_op_6 - 2.5347805838436681;
+       const real_t tmp_kernel_op_115 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_114 - tmp_kernel_op_80;
+       const real_t tmp_kernel_op_116 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_114 - tmp_kernel_op_83;
+       const real_t tmp_kernel_op_117 = -tmp_kernel_op_12 + 0.43241207267228088;
+       const real_t tmp_kernel_op_118 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_117 - tmp_kernel_op_86;
+       const real_t tmp_kernel_op_119 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_117 - tmp_kernel_op_89;
+       const real_t tmp_kernel_op_120 = -tmp_kernel_op_18 + 3.2673902919218341;
+       const real_t tmp_kernel_op_121 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_120 - tmp_kernel_op_92;
+       const real_t tmp_kernel_op_122 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_120 - tmp_kernel_op_95;
+       const real_t tmp_kernel_op_123 = -tmp_kernel_op_24 + 0.43241207267228088;
+       const real_t tmp_kernel_op_124 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_123 - tmp_kernel_op_98;
+       const real_t tmp_kernel_op_125 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_123 - tmp_kernel_op_101;
+       const real_t tmp_kernel_op_126 = -tmp_kernel_op_30 + 3.2673902919218341;
+       const real_t tmp_kernel_op_127 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_126 - tmp_kernel_op_104;
+       const real_t tmp_kernel_op_128 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_126 - tmp_kernel_op_107;
+       const real_t tmp_kernel_op_129 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_116 + tmp_kernel_op_115*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_15 + tmp_kernel_op_119*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_21 + tmp_kernel_op_122*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_27 + tmp_kernel_op_125*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_33 + tmp_kernel_op_128*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_3 + tmp_kernel_op_113*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_130 = -tmp_kernel_op_1 + 0.43241207267228088;
+       const real_t tmp_kernel_op_131 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_130 - tmp_kernel_op_75;
+       const real_t tmp_kernel_op_132 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_130 - tmp_kernel_op_78;
+       const real_t tmp_kernel_op_133 = -tmp_kernel_op_7 + 3.2673902919218341;
+       const real_t tmp_kernel_op_134 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_133 - tmp_kernel_op_81;
+       const real_t tmp_kernel_op_135 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_133 - tmp_kernel_op_84;
+       const real_t tmp_kernel_op_136 = -tmp_kernel_op_13 + 3.1351758546554382;
+       const real_t tmp_kernel_op_137 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_136 - tmp_kernel_op_87;
+       const real_t tmp_kernel_op_138 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_136 - tmp_kernel_op_90;
+       const real_t tmp_kernel_op_139 = -tmp_kernel_op_19 - 2.5347805838436681;
+       const real_t tmp_kernel_op_140 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_139 - tmp_kernel_op_93;
+       const real_t tmp_kernel_op_141 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_139 - tmp_kernel_op_96;
+       const real_t tmp_kernel_op_142 = -tmp_kernel_op_25 + 0.43241207267228088;
+       const real_t tmp_kernel_op_143 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_142 - tmp_kernel_op_99;
+       const real_t tmp_kernel_op_144 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_142 - tmp_kernel_op_102;
+       const real_t tmp_kernel_op_145 = -tmp_kernel_op_31 + 3.2673902919218341;
+       const real_t tmp_kernel_op_146 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_145 - tmp_kernel_op_105;
+       const real_t tmp_kernel_op_147 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_145 - tmp_kernel_op_108;
+       const real_t tmp_kernel_op_148 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_135 + tmp_kernel_op_134*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_15 + tmp_kernel_op_138*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_21 + tmp_kernel_op_141*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_27 + tmp_kernel_op_144*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_33 + tmp_kernel_op_147*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_3 + tmp_kernel_op_132*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_149 = jac_affine_inv_0_0_GRAY*27.0;
+       const int64_t tmp_kernel_op_150 = 0;
+       const real_t tmp_kernel_op_151 = jac_affine_inv_1_0_GRAY*27.0;
+       const real_t tmp_kernel_op_152 = 0.15066167873471437;
+       const real_t tmp_kernel_op_153 = tmp_kernel_op_149*((real_t)(tmp_kernel_op_150)) + tmp_kernel_op_151*tmp_kernel_op_152;
+       const real_t tmp_kernel_op_154 = jac_affine_inv_0_1_GRAY*27.0;
+       const real_t tmp_kernel_op_155 = jac_affine_inv_1_1_GRAY*27.0;
+       const real_t tmp_kernel_op_156 = tmp_kernel_op_152*tmp_kernel_op_155 + tmp_kernel_op_154*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_kernel_op_157 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_158 = -0.066417604867409372;
+       const real_t tmp_kernel_op_159 = tmp_kernel_op_149*tmp_kernel_op_157 + tmp_kernel_op_151*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_160 = tmp_kernel_op_154*tmp_kernel_op_157 + tmp_kernel_op_155*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_161 = 0.15066167873471437;
+       const int64_t tmp_kernel_op_162 = 0;
+       const real_t tmp_kernel_op_163 = tmp_kernel_op_149*tmp_kernel_op_161 + tmp_kernel_op_151*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_164 = tmp_kernel_op_154*tmp_kernel_op_161 + tmp_kernel_op_155*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_165 = -0.066417604867409372;
+       const real_t tmp_kernel_op_166 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_167 = tmp_kernel_op_149*tmp_kernel_op_165 + tmp_kernel_op_151*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_168 = tmp_kernel_op_154*tmp_kernel_op_165 + tmp_kernel_op_155*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_169 = -0.15066167873471437;
+       const real_t tmp_kernel_op_170 = -0.15066167873471437;
+       const real_t tmp_kernel_op_171 = tmp_kernel_op_149*tmp_kernel_op_169 + tmp_kernel_op_151*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_172 = tmp_kernel_op_154*tmp_kernel_op_169 + tmp_kernel_op_155*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_173 = 0.066417604867409386;
+       const real_t tmp_kernel_op_174 = 0.066417604867409386;
+       const real_t tmp_kernel_op_175 = tmp_kernel_op_149*tmp_kernel_op_173 + tmp_kernel_op_151*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_176 = tmp_kernel_op_154*tmp_kernel_op_173 + tmp_kernel_op_155*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_177 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_160 + tmp_kernel_op_159*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_163 + tmp_kernel_op_16*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_21 + tmp_kernel_op_168*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_27 + tmp_kernel_op_172*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_33 + tmp_kernel_op_176*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_3 + tmp_kernel_op_156*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_178 = (jac_affine_inv_0_0_GRAY*jac_affine_inv_0_0_GRAY);
+       const real_t tmp_kernel_op_179 = (tmp_kernel_op_36*tmp_kernel_op_36);
+       const real_t tmp_kernel_op_180 = (jac_affine_inv_0_1_GRAY*jac_affine_inv_0_1_GRAY);
+       const real_t tmp_kernel_op_181 = (tmp_kernel_op_39*tmp_kernel_op_39);
+       const real_t tmp_kernel_op_182 = (tmp_kernel_op_42*tmp_kernel_op_42);
+       const real_t tmp_kernel_op_183 = (tmp_kernel_op_45*tmp_kernel_op_45);
+       const real_t tmp_kernel_op_184 = (tmp_kernel_op_48*tmp_kernel_op_48);
+       const real_t tmp_kernel_op_185 = (tmp_kernel_op_51*tmp_kernel_op_51);
+       const real_t tmp_kernel_op_186 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_59 + tmp_kernel_op_41*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_62 + tmp_kernel_op_44*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_65 + tmp_kernel_op_47*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_49*tmp_kernel_op_68 + tmp_kernel_op_50*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_52*tmp_kernel_op_71 + tmp_kernel_op_53*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_56 + tmp_kernel_op_38*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_187 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_82 + tmp_kernel_op_41*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_88 + tmp_kernel_op_44*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_94 + tmp_kernel_op_47*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_49 + tmp_kernel_op_103*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_52 + tmp_kernel_op_109*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_76 + tmp_kernel_op_38*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_188 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_40 + tmp_kernel_op_116*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_43 + tmp_kernel_op_119*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_46 + tmp_kernel_op_122*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_49 + tmp_kernel_op_125*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_52 + tmp_kernel_op_128*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_37 + tmp_kernel_op_113*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_189 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_40 + tmp_kernel_op_135*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_43 + tmp_kernel_op_138*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_46 + tmp_kernel_op_141*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_49 + tmp_kernel_op_144*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_52 + tmp_kernel_op_147*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_37 + tmp_kernel_op_132*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_190 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_40 + tmp_kernel_op_160*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_43 + tmp_kernel_op_164*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_46 + tmp_kernel_op_168*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_49 + tmp_kernel_op_172*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_52 + tmp_kernel_op_176*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_37 + tmp_kernel_op_156*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_191 = (jac_affine_inv_1_0_GRAY*jac_affine_inv_1_0_GRAY);
+       const real_t tmp_kernel_op_192 = (tmp_kernel_op_55*tmp_kernel_op_55);
+       const real_t tmp_kernel_op_193 = (jac_affine_inv_1_1_GRAY*jac_affine_inv_1_1_GRAY);
+       const real_t tmp_kernel_op_194 = (tmp_kernel_op_58*tmp_kernel_op_58);
+       const real_t tmp_kernel_op_195 = (tmp_kernel_op_61*tmp_kernel_op_61);
+       const real_t tmp_kernel_op_196 = (tmp_kernel_op_64*tmp_kernel_op_64);
+       const real_t tmp_kernel_op_197 = (tmp_kernel_op_67*tmp_kernel_op_67);
+       const real_t tmp_kernel_op_198 = (tmp_kernel_op_70*tmp_kernel_op_70);
+       const real_t tmp_kernel_op_199 = tmp_kernel_op_11*(tmp_kernel_op_59*tmp_kernel_op_82 + tmp_kernel_op_60*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_62*tmp_kernel_op_88 + tmp_kernel_op_63*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_65*tmp_kernel_op_94 + tmp_kernel_op_66*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_68 + tmp_kernel_op_103*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_71 + tmp_kernel_op_109*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_56*tmp_kernel_op_76 + tmp_kernel_op_57*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_200 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_59 + tmp_kernel_op_116*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_62 + tmp_kernel_op_119*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_65 + tmp_kernel_op_122*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_68 + tmp_kernel_op_125*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_71 + tmp_kernel_op_128*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_56 + tmp_kernel_op_113*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_201 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_59 + tmp_kernel_op_135*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_62 + tmp_kernel_op_138*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_65 + tmp_kernel_op_141*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_68 + tmp_kernel_op_144*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_71 + tmp_kernel_op_147*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_56 + tmp_kernel_op_132*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_202 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_59 + tmp_kernel_op_160*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_62 + tmp_kernel_op_164*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_65 + tmp_kernel_op_168*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_68 + tmp_kernel_op_172*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_71 + tmp_kernel_op_176*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_56 + tmp_kernel_op_156*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_203 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_82 + tmp_kernel_op_116*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_88 + tmp_kernel_op_119*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_94 + tmp_kernel_op_122*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_124 + tmp_kernel_op_103*tmp_kernel_op_125) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_127 + tmp_kernel_op_109*tmp_kernel_op_128) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_76 + tmp_kernel_op_113*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_204 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_82 + tmp_kernel_op_135*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_88 + tmp_kernel_op_138*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_94 + tmp_kernel_op_141*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_143 + tmp_kernel_op_103*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_146 + tmp_kernel_op_109*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_76 + tmp_kernel_op_132*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_205 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_82 + tmp_kernel_op_160*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_88 + tmp_kernel_op_164*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_94 + tmp_kernel_op_168*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_171 + tmp_kernel_op_103*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_175 + tmp_kernel_op_109*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_76 + tmp_kernel_op_156*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_206 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_134 + tmp_kernel_op_116*tmp_kernel_op_135) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_137 + tmp_kernel_op_119*tmp_kernel_op_138) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_140 + tmp_kernel_op_122*tmp_kernel_op_141) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_143 + tmp_kernel_op_125*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_146 + tmp_kernel_op_128*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_131 + tmp_kernel_op_113*tmp_kernel_op_132);
+       const real_t tmp_kernel_op_207 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_159 + tmp_kernel_op_116*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_163 + tmp_kernel_op_119*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_167 + tmp_kernel_op_122*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_171 + tmp_kernel_op_125*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_175 + tmp_kernel_op_128*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_153 + tmp_kernel_op_113*tmp_kernel_op_156);
+       const real_t tmp_kernel_op_208 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_159 + tmp_kernel_op_135*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_163 + tmp_kernel_op_138*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_167 + tmp_kernel_op_141*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_171 + tmp_kernel_op_144*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_175 + tmp_kernel_op_147*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_153 + tmp_kernel_op_132*tmp_kernel_op_156);
+       const real_t tmp_moved_constant_7 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_8 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_9 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_10 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_11 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_12 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_13 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_14 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_15 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_16 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_17 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_18 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_19 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_20 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_21 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_22 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_23 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_24 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_25 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_26 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_27 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_28 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_29 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_30 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_31 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_32 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_33 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_34 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_35 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_36 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_37 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_27 + tmp_moved_constant_11*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_29 + tmp_moved_constant_14*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_31 + tmp_moved_constant_17*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_33 + tmp_moved_constant_20*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_35 + tmp_moved_constant_23*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_7 + tmp_moved_constant_26*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_38 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_39 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_40 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_41 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_42 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_43 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_44 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_45 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_46 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_47 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_48 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_49 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_50 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_40 + tmp_moved_constant_11*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_42 + tmp_moved_constant_14*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_44 + tmp_moved_constant_17*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_46 + tmp_moved_constant_20*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_48 + tmp_moved_constant_23*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_7 + tmp_moved_constant_39*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_51 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_52 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_53 = tmp_moved_constant_51 + tmp_moved_constant_52;
+       const real_t tmp_moved_constant_54 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_55 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_56 = tmp_moved_constant_54 + tmp_moved_constant_55;
+       const real_t tmp_moved_constant_57 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_58 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_59 = tmp_moved_constant_57 + tmp_moved_constant_58;
+       const real_t tmp_moved_constant_60 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_61 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_62 = tmp_moved_constant_60 + tmp_moved_constant_61;
+       const real_t tmp_moved_constant_63 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_64 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_65 = tmp_moved_constant_63 + tmp_moved_constant_64;
+       const real_t tmp_moved_constant_66 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_67 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_68 = tmp_moved_constant_66 + tmp_moved_constant_67;
+       const real_t tmp_moved_constant_69 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_70 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_71 = tmp_moved_constant_69 + tmp_moved_constant_70;
+       const real_t tmp_moved_constant_72 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_73 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_74 = tmp_moved_constant_72 + tmp_moved_constant_73;
+       const real_t tmp_moved_constant_75 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_76 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_77 = tmp_moved_constant_75 + tmp_moved_constant_76;
+       const real_t tmp_moved_constant_78 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_79 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_80 = tmp_moved_constant_78 + tmp_moved_constant_79;
+       const real_t tmp_moved_constant_81 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_82 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_83 = tmp_moved_constant_81 + tmp_moved_constant_82;
+       const real_t tmp_moved_constant_84 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_85 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_86 = tmp_moved_constant_84 + tmp_moved_constant_85;
+       const real_t tmp_moved_constant_87 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_59 + tmp_moved_constant_11*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_65 + tmp_moved_constant_14*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_71 + tmp_moved_constant_17*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_77 + tmp_moved_constant_20*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_83 + tmp_moved_constant_23*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_53*tmp_moved_constant_7 + tmp_moved_constant_56*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_88 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_111 - tmp_moved_constant_51;
+       const real_t tmp_moved_constant_89 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_111 - tmp_moved_constant_54;
+       const real_t tmp_moved_constant_90 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_114 - tmp_moved_constant_57;
+       const real_t tmp_moved_constant_91 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_114 - tmp_moved_constant_60;
+       const real_t tmp_moved_constant_92 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_117 - tmp_moved_constant_63;
+       const real_t tmp_moved_constant_93 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_117 - tmp_moved_constant_66;
+       const real_t tmp_moved_constant_94 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_120 - tmp_moved_constant_69;
+       const real_t tmp_moved_constant_95 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_120 - tmp_moved_constant_72;
+       const real_t tmp_moved_constant_96 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_123 - tmp_moved_constant_75;
+       const real_t tmp_moved_constant_97 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_123 - tmp_moved_constant_78;
+       const real_t tmp_moved_constant_98 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_126 - tmp_moved_constant_81;
+       const real_t tmp_moved_constant_99 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_126 - tmp_moved_constant_84;
+       const real_t tmp_moved_constant_100 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_90 + tmp_moved_constant_11*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_92 + tmp_moved_constant_14*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_94 + tmp_moved_constant_17*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_96 + tmp_moved_constant_20*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_98 + tmp_moved_constant_23*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_7*tmp_moved_constant_88 + tmp_moved_constant_8*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_101 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_130 - tmp_moved_constant_52;
+       const real_t tmp_moved_constant_102 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_130 - tmp_moved_constant_55;
+       const real_t tmp_moved_constant_103 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_133 - tmp_moved_constant_58;
+       const real_t tmp_moved_constant_104 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_133 - tmp_moved_constant_61;
+       const real_t tmp_moved_constant_105 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_136 - tmp_moved_constant_64;
+       const real_t tmp_moved_constant_106 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_136 - tmp_moved_constant_67;
+       const real_t tmp_moved_constant_107 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_139 - tmp_moved_constant_70;
+       const real_t tmp_moved_constant_108 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_139 - tmp_moved_constant_73;
+       const real_t tmp_moved_constant_109 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_142 - tmp_moved_constant_76;
+       const real_t tmp_moved_constant_110 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_142 - tmp_moved_constant_79;
+       const real_t tmp_moved_constant_111 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_145 - tmp_moved_constant_82;
+       const real_t tmp_moved_constant_112 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_145 - tmp_moved_constant_85;
+       const real_t tmp_moved_constant_113 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_103 + tmp_moved_constant_104*tmp_moved_constant_11) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_13 + tmp_moved_constant_106*tmp_moved_constant_14) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_16 + tmp_moved_constant_108*tmp_moved_constant_17) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_19 + tmp_moved_constant_110*tmp_moved_constant_20) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_22 + tmp_moved_constant_112*tmp_moved_constant_23) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_7 + tmp_moved_constant_102*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_114 = jac_affine_inv_0_0_BLUE*27.0;
+       const real_t tmp_moved_constant_115 = jac_affine_inv_1_0_BLUE*27.0;
+       const real_t tmp_moved_constant_116 = tmp_kernel_op_152*tmp_moved_constant_115 + tmp_moved_constant_114*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_117 = jac_affine_inv_0_1_BLUE*27.0;
+       const real_t tmp_moved_constant_118 = jac_affine_inv_1_1_BLUE*27.0;
+       const real_t tmp_moved_constant_119 = tmp_kernel_op_152*tmp_moved_constant_118 + tmp_moved_constant_117*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_120 = tmp_kernel_op_157*tmp_moved_constant_114 + tmp_kernel_op_158*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_121 = tmp_kernel_op_157*tmp_moved_constant_117 + tmp_kernel_op_158*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_122 = tmp_kernel_op_161*tmp_moved_constant_114 + tmp_moved_constant_115*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_123 = tmp_kernel_op_161*tmp_moved_constant_117 + tmp_moved_constant_118*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_124 = tmp_kernel_op_165*tmp_moved_constant_114 + tmp_kernel_op_166*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_125 = tmp_kernel_op_165*tmp_moved_constant_117 + tmp_kernel_op_166*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_126 = tmp_kernel_op_169*tmp_moved_constant_114 + tmp_kernel_op_170*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_127 = tmp_kernel_op_169*tmp_moved_constant_117 + tmp_kernel_op_170*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_128 = tmp_kernel_op_173*tmp_moved_constant_114 + tmp_kernel_op_174*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_129 = tmp_kernel_op_173*tmp_moved_constant_117 + tmp_kernel_op_174*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_130 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_120 + tmp_moved_constant_11*tmp_moved_constant_121) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_13 + tmp_moved_constant_123*tmp_moved_constant_14) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_16 + tmp_moved_constant_125*tmp_moved_constant_17) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_19 + tmp_moved_constant_127*tmp_moved_constant_20) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_22 + tmp_moved_constant_129*tmp_moved_constant_23) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_7 + tmp_moved_constant_119*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_131 = (jac_affine_inv_0_0_BLUE*jac_affine_inv_0_0_BLUE);
+       const real_t tmp_moved_constant_132 = (jac_affine_inv_0_1_BLUE*jac_affine_inv_0_1_BLUE);
+       const real_t tmp_moved_constant_133 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_40 + tmp_moved_constant_28*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_42 + tmp_moved_constant_30*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_44 + tmp_moved_constant_32*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_46 + tmp_moved_constant_34*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_48 + tmp_moved_constant_36*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_38 + tmp_moved_constant_26*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_134 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_59 + tmp_moved_constant_28*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_65 + tmp_moved_constant_30*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_71 + tmp_moved_constant_32*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_77 + tmp_moved_constant_34*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_83 + tmp_moved_constant_36*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_53 + tmp_moved_constant_26*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_135 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_90 + tmp_moved_constant_28*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_92 + tmp_moved_constant_30*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_94 + tmp_moved_constant_32*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_96 + tmp_moved_constant_34*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_98 + tmp_moved_constant_36*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_88 + tmp_moved_constant_26*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_136 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_27 + tmp_moved_constant_104*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_29 + tmp_moved_constant_106*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_31 + tmp_moved_constant_108*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_33 + tmp_moved_constant_110*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_35 + tmp_moved_constant_112*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_25 + tmp_moved_constant_102*tmp_moved_constant_26);
+       const real_t tmp_moved_constant_137 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_27 + tmp_moved_constant_121*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_29 + tmp_moved_constant_123*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_31 + tmp_moved_constant_125*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_33 + tmp_moved_constant_127*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_35 + tmp_moved_constant_129*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_25 + tmp_moved_constant_119*tmp_moved_constant_26);
+       const real_t tmp_moved_constant_138 = (jac_affine_inv_1_0_BLUE*jac_affine_inv_1_0_BLUE);
+       const real_t tmp_moved_constant_139 = (jac_affine_inv_1_1_BLUE*jac_affine_inv_1_1_BLUE);
+       const real_t tmp_moved_constant_140 = tmp_moved_constant_12*(tmp_moved_constant_40*tmp_moved_constant_59 + tmp_moved_constant_41*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_42*tmp_moved_constant_65 + tmp_moved_constant_43*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_44*tmp_moved_constant_71 + tmp_moved_constant_45*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_46*tmp_moved_constant_77 + tmp_moved_constant_47*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_48*tmp_moved_constant_83 + tmp_moved_constant_49*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_53 + tmp_moved_constant_39*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_141 = tmp_moved_constant_12*(tmp_moved_constant_40*tmp_moved_constant_90 + tmp_moved_constant_41*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_42*tmp_moved_constant_92 + tmp_moved_constant_43*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_44*tmp_moved_constant_94 + tmp_moved_constant_45*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_46*tmp_moved_constant_96 + tmp_moved_constant_47*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_48*tmp_moved_constant_98 + tmp_moved_constant_49*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_88 + tmp_moved_constant_39*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_142 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_40 + tmp_moved_constant_104*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_42 + tmp_moved_constant_106*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_44 + tmp_moved_constant_108*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_46 + tmp_moved_constant_110*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_48 + tmp_moved_constant_112*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_38 + tmp_moved_constant_102*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_143 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_40 + tmp_moved_constant_121*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_42 + tmp_moved_constant_123*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_44 + tmp_moved_constant_125*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_46 + tmp_moved_constant_127*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_48 + tmp_moved_constant_129*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_38 + tmp_moved_constant_119*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_144 = tmp_moved_constant_12*(tmp_moved_constant_59*tmp_moved_constant_90 + tmp_moved_constant_62*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_65*tmp_moved_constant_92 + tmp_moved_constant_68*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_71*tmp_moved_constant_94 + tmp_moved_constant_74*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_77*tmp_moved_constant_96 + tmp_moved_constant_80*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_83*tmp_moved_constant_98 + tmp_moved_constant_86*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_53*tmp_moved_constant_88 + tmp_moved_constant_56*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_145 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_59 + tmp_moved_constant_104*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_65 + tmp_moved_constant_106*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_71 + tmp_moved_constant_108*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_77 + tmp_moved_constant_110*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_83 + tmp_moved_constant_112*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_53 + tmp_moved_constant_102*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_146 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_59 + tmp_moved_constant_121*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_65 + tmp_moved_constant_123*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_71 + tmp_moved_constant_125*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_77 + tmp_moved_constant_127*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_83 + tmp_moved_constant_129*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_53 + tmp_moved_constant_119*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_147 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_90 + tmp_moved_constant_104*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_92 + tmp_moved_constant_106*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_94 + tmp_moved_constant_108*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_96 + tmp_moved_constant_110*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_98 + tmp_moved_constant_112*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_88 + tmp_moved_constant_102*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_148 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_90 + tmp_moved_constant_121*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_92 + tmp_moved_constant_123*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_94 + tmp_moved_constant_125*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_96 + tmp_moved_constant_127*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_98 + tmp_moved_constant_129*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_88 + tmp_moved_constant_119*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_149 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_120 + tmp_moved_constant_104*tmp_moved_constant_121) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_122 + tmp_moved_constant_106*tmp_moved_constant_123) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_124 + tmp_moved_constant_108*tmp_moved_constant_125) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_126 + tmp_moved_constant_110*tmp_moved_constant_127) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_128 + tmp_moved_constant_112*tmp_moved_constant_129) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_116 + tmp_moved_constant_102*tmp_moved_constant_119);
+       for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
+       {
+          {
+             for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
+             {
+                const __m256d src_dof_0 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d src_dof_1 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
+                const __m256d src_dof_2 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d src_dof_3 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d src_dof_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d src_dof_5 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d src_dof_6 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]);
+                const __m256d elMatVec_0 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_10,tmp_kernel_op_10,tmp_kernel_op_10,tmp_kernel_op_10),_mm256_set_pd(tmp_kernel_op_10,tmp_kernel_op_10,tmp_kernel_op_10,tmp_kernel_op_10)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_9,tmp_kernel_op_9,tmp_kernel_op_9,tmp_kernel_op_9),_mm256_set_pd(tmp_kernel_op_9,tmp_kernel_op_9,tmp_kernel_op_9,tmp_kernel_op_9))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_15,tmp_kernel_op_15,tmp_kernel_op_15,tmp_kernel_op_15),_mm256_set_pd(tmp_kernel_op_15,tmp_kernel_op_15,tmp_kernel_op_15,tmp_kernel_op_15)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_16,tmp_kernel_op_16,tmp_kernel_op_16,tmp_kernel_op_16),_mm256_set_pd(tmp_kernel_op_16,tmp_kernel_op_16,tmp_kernel_op_16,tmp_kernel_op_16))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_21,tmp_kernel_op_21,tmp_kernel_op_21,tmp_kernel_op_21),_mm256_set_pd(tmp_kernel_op_21,tmp_kernel_op_21,tmp_kernel_op_21,tmp_kernel_op_21)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_22,tmp_kernel_op_22,tmp_kernel_op_22,tmp_kernel_op_22),_mm256_set_pd(tmp_kernel_op_22,tmp_kernel_op_22,tmp_kernel_op_22,tmp_kernel_op_22))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_27,tmp_kernel_op_27,tmp_kernel_op_27,tmp_kernel_op_27),_mm256_set_pd(tmp_kernel_op_27,tmp_kernel_op_27,tmp_kernel_op_27,tmp_kernel_op_27)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_28,tmp_kernel_op_28,tmp_kernel_op_28,tmp_kernel_op_28),_mm256_set_pd(tmp_kernel_op_28,tmp_kernel_op_28,tmp_kernel_op_28,tmp_kernel_op_28))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_3,tmp_kernel_op_3,tmp_kernel_op_3,tmp_kernel_op_3),_mm256_set_pd(tmp_kernel_op_3,tmp_kernel_op_3,tmp_kernel_op_3,tmp_kernel_op_3)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_4,tmp_kernel_op_4,tmp_kernel_op_4,tmp_kernel_op_4),_mm256_set_pd(tmp_kernel_op_4,tmp_kernel_op_4,tmp_kernel_op_4,tmp_kernel_op_4))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_33,tmp_kernel_op_33,tmp_kernel_op_33,tmp_kernel_op_33),_mm256_set_pd(tmp_kernel_op_33,tmp_kernel_op_33,tmp_kernel_op_33,tmp_kernel_op_33)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_34,tmp_kernel_op_34,tmp_kernel_op_34,tmp_kernel_op_34),_mm256_set_pd(tmp_kernel_op_34,tmp_kernel_op_34,tmp_kernel_op_34,tmp_kernel_op_34))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_110,tmp_kernel_op_110,tmp_kernel_op_110,tmp_kernel_op_110))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_129,tmp_kernel_op_129,tmp_kernel_op_129,tmp_kernel_op_129))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_148,tmp_kernel_op_148,tmp_kernel_op_148,tmp_kernel_op_148))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_177,tmp_kernel_op_177,tmp_kernel_op_177,tmp_kernel_op_177))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_54,tmp_kernel_op_54,tmp_kernel_op_54,tmp_kernel_op_54))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_73,tmp_kernel_op_73,tmp_kernel_op_73,tmp_kernel_op_73)));
+                const __m256d elMatVec_1 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_1,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179),_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180),_mm256_set_pd(tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180),_mm256_set_pd(tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180),_mm256_set_pd(tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180),_mm256_set_pd(tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178,tmp_kernel_op_178),_mm256_set_pd(tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180,tmp_kernel_op_180),_mm256_set_pd(tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_186,tmp_kernel_op_186,tmp_kernel_op_186,tmp_kernel_op_186))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_187,tmp_kernel_op_187,tmp_kernel_op_187,tmp_kernel_op_187))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_188,tmp_kernel_op_188,tmp_kernel_op_188,tmp_kernel_op_188))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_189,tmp_kernel_op_189,tmp_kernel_op_189,tmp_kernel_op_189))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_190,tmp_kernel_op_190,tmp_kernel_op_190,tmp_kernel_op_190))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_54,tmp_kernel_op_54,tmp_kernel_op_54,tmp_kernel_op_54)));
+                const __m256d elMatVec_2 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_2,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192),_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193),_mm256_set_pd(tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193),_mm256_set_pd(tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193),_mm256_set_pd(tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193),_mm256_set_pd(tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191,tmp_kernel_op_191),_mm256_set_pd(tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193,tmp_kernel_op_193),_mm256_set_pd(tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_186,tmp_kernel_op_186,tmp_kernel_op_186,tmp_kernel_op_186))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_199,tmp_kernel_op_199,tmp_kernel_op_199,tmp_kernel_op_199))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_200,tmp_kernel_op_200,tmp_kernel_op_200,tmp_kernel_op_200))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_201,tmp_kernel_op_201,tmp_kernel_op_201,tmp_kernel_op_201))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_202,tmp_kernel_op_202,tmp_kernel_op_202,tmp_kernel_op_202))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_73,tmp_kernel_op_73,tmp_kernel_op_73,tmp_kernel_op_73)));
+                const __m256d elMatVec_3 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_3,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_100,tmp_kernel_op_100,tmp_kernel_op_100,tmp_kernel_op_100),_mm256_set_pd(tmp_kernel_op_100,tmp_kernel_op_100,tmp_kernel_op_100,tmp_kernel_op_100)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_103,tmp_kernel_op_103,tmp_kernel_op_103,tmp_kernel_op_103),_mm256_set_pd(tmp_kernel_op_103,tmp_kernel_op_103,tmp_kernel_op_103,tmp_kernel_op_103))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_106,tmp_kernel_op_106,tmp_kernel_op_106,tmp_kernel_op_106),_mm256_set_pd(tmp_kernel_op_106,tmp_kernel_op_106,tmp_kernel_op_106,tmp_kernel_op_106)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_109,tmp_kernel_op_109,tmp_kernel_op_109,tmp_kernel_op_109),_mm256_set_pd(tmp_kernel_op_109,tmp_kernel_op_109,tmp_kernel_op_109,tmp_kernel_op_109))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_76,tmp_kernel_op_76,tmp_kernel_op_76,tmp_kernel_op_76),_mm256_set_pd(tmp_kernel_op_76,tmp_kernel_op_76,tmp_kernel_op_76,tmp_kernel_op_76)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_79,tmp_kernel_op_79,tmp_kernel_op_79,tmp_kernel_op_79),_mm256_set_pd(tmp_kernel_op_79,tmp_kernel_op_79,tmp_kernel_op_79,tmp_kernel_op_79))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_82,tmp_kernel_op_82,tmp_kernel_op_82,tmp_kernel_op_82),_mm256_set_pd(tmp_kernel_op_82,tmp_kernel_op_82,tmp_kernel_op_82,tmp_kernel_op_82)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_85,tmp_kernel_op_85,tmp_kernel_op_85,tmp_kernel_op_85),_mm256_set_pd(tmp_kernel_op_85,tmp_kernel_op_85,tmp_kernel_op_85,tmp_kernel_op_85))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_88,tmp_kernel_op_88,tmp_kernel_op_88,tmp_kernel_op_88),_mm256_set_pd(tmp_kernel_op_88,tmp_kernel_op_88,tmp_kernel_op_88,tmp_kernel_op_88)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_91,tmp_kernel_op_91,tmp_kernel_op_91,tmp_kernel_op_91),_mm256_set_pd(tmp_kernel_op_91,tmp_kernel_op_91,tmp_kernel_op_91,tmp_kernel_op_91))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_94,tmp_kernel_op_94,tmp_kernel_op_94,tmp_kernel_op_94),_mm256_set_pd(tmp_kernel_op_94,tmp_kernel_op_94,tmp_kernel_op_94,tmp_kernel_op_94)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_97,tmp_kernel_op_97,tmp_kernel_op_97,tmp_kernel_op_97),_mm256_set_pd(tmp_kernel_op_97,tmp_kernel_op_97,tmp_kernel_op_97,tmp_kernel_op_97))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23)))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_110,tmp_kernel_op_110,tmp_kernel_op_110,tmp_kernel_op_110))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_187,tmp_kernel_op_187,tmp_kernel_op_187,tmp_kernel_op_187))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_199,tmp_kernel_op_199,tmp_kernel_op_199,tmp_kernel_op_199))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_203,tmp_kernel_op_203,tmp_kernel_op_203,tmp_kernel_op_203))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_204,tmp_kernel_op_204,tmp_kernel_op_204,tmp_kernel_op_204))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_205,tmp_kernel_op_205,tmp_kernel_op_205,tmp_kernel_op_205)));
+                const __m256d elMatVec_4 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_4,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_112,tmp_kernel_op_112,tmp_kernel_op_112,tmp_kernel_op_112),_mm256_set_pd(tmp_kernel_op_112,tmp_kernel_op_112,tmp_kernel_op_112,tmp_kernel_op_112)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_113,tmp_kernel_op_113,tmp_kernel_op_113,tmp_kernel_op_113),_mm256_set_pd(tmp_kernel_op_113,tmp_kernel_op_113,tmp_kernel_op_113,tmp_kernel_op_113))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_115,tmp_kernel_op_115,tmp_kernel_op_115,tmp_kernel_op_115),_mm256_set_pd(tmp_kernel_op_115,tmp_kernel_op_115,tmp_kernel_op_115,tmp_kernel_op_115)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_116,tmp_kernel_op_116,tmp_kernel_op_116,tmp_kernel_op_116),_mm256_set_pd(tmp_kernel_op_116,tmp_kernel_op_116,tmp_kernel_op_116,tmp_kernel_op_116))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_118,tmp_kernel_op_118,tmp_kernel_op_118,tmp_kernel_op_118),_mm256_set_pd(tmp_kernel_op_118,tmp_kernel_op_118,tmp_kernel_op_118,tmp_kernel_op_118)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_119,tmp_kernel_op_119,tmp_kernel_op_119,tmp_kernel_op_119),_mm256_set_pd(tmp_kernel_op_119,tmp_kernel_op_119,tmp_kernel_op_119,tmp_kernel_op_119))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_121,tmp_kernel_op_121,tmp_kernel_op_121,tmp_kernel_op_121),_mm256_set_pd(tmp_kernel_op_121,tmp_kernel_op_121,tmp_kernel_op_121,tmp_kernel_op_121)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_122,tmp_kernel_op_122,tmp_kernel_op_122,tmp_kernel_op_122),_mm256_set_pd(tmp_kernel_op_122,tmp_kernel_op_122,tmp_kernel_op_122,tmp_kernel_op_122))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_124,tmp_kernel_op_124,tmp_kernel_op_124,tmp_kernel_op_124),_mm256_set_pd(tmp_kernel_op_124,tmp_kernel_op_124,tmp_kernel_op_124,tmp_kernel_op_124)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_125,tmp_kernel_op_125,tmp_kernel_op_125,tmp_kernel_op_125),_mm256_set_pd(tmp_kernel_op_125,tmp_kernel_op_125,tmp_kernel_op_125,tmp_kernel_op_125))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_127,tmp_kernel_op_127,tmp_kernel_op_127,tmp_kernel_op_127),_mm256_set_pd(tmp_kernel_op_127,tmp_kernel_op_127,tmp_kernel_op_127,tmp_kernel_op_127)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_128,tmp_kernel_op_128,tmp_kernel_op_128,tmp_kernel_op_128),_mm256_set_pd(tmp_kernel_op_128,tmp_kernel_op_128,tmp_kernel_op_128,tmp_kernel_op_128))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_129,tmp_kernel_op_129,tmp_kernel_op_129,tmp_kernel_op_129))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_188,tmp_kernel_op_188,tmp_kernel_op_188,tmp_kernel_op_188))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_200,tmp_kernel_op_200,tmp_kernel_op_200,tmp_kernel_op_200))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_203,tmp_kernel_op_203,tmp_kernel_op_203,tmp_kernel_op_203))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_206,tmp_kernel_op_206,tmp_kernel_op_206,tmp_kernel_op_206))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_207,tmp_kernel_op_207,tmp_kernel_op_207,tmp_kernel_op_207)));
+                const __m256d elMatVec_5 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_5,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_131,tmp_kernel_op_131,tmp_kernel_op_131,tmp_kernel_op_131),_mm256_set_pd(tmp_kernel_op_131,tmp_kernel_op_131,tmp_kernel_op_131,tmp_kernel_op_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_132,tmp_kernel_op_132,tmp_kernel_op_132,tmp_kernel_op_132),_mm256_set_pd(tmp_kernel_op_132,tmp_kernel_op_132,tmp_kernel_op_132,tmp_kernel_op_132))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_134,tmp_kernel_op_134,tmp_kernel_op_134,tmp_kernel_op_134),_mm256_set_pd(tmp_kernel_op_134,tmp_kernel_op_134,tmp_kernel_op_134,tmp_kernel_op_134)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_135,tmp_kernel_op_135,tmp_kernel_op_135,tmp_kernel_op_135),_mm256_set_pd(tmp_kernel_op_135,tmp_kernel_op_135,tmp_kernel_op_135,tmp_kernel_op_135))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_137,tmp_kernel_op_137,tmp_kernel_op_137,tmp_kernel_op_137),_mm256_set_pd(tmp_kernel_op_137,tmp_kernel_op_137,tmp_kernel_op_137,tmp_kernel_op_137)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_138,tmp_kernel_op_138,tmp_kernel_op_138,tmp_kernel_op_138),_mm256_set_pd(tmp_kernel_op_138,tmp_kernel_op_138,tmp_kernel_op_138,tmp_kernel_op_138))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_140,tmp_kernel_op_140,tmp_kernel_op_140,tmp_kernel_op_140),_mm256_set_pd(tmp_kernel_op_140,tmp_kernel_op_140,tmp_kernel_op_140,tmp_kernel_op_140)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_141,tmp_kernel_op_141,tmp_kernel_op_141,tmp_kernel_op_141),_mm256_set_pd(tmp_kernel_op_141,tmp_kernel_op_141,tmp_kernel_op_141,tmp_kernel_op_141))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_143,tmp_kernel_op_143,tmp_kernel_op_143,tmp_kernel_op_143),_mm256_set_pd(tmp_kernel_op_143,tmp_kernel_op_143,tmp_kernel_op_143,tmp_kernel_op_143)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_144,tmp_kernel_op_144,tmp_kernel_op_144,tmp_kernel_op_144),_mm256_set_pd(tmp_kernel_op_144,tmp_kernel_op_144,tmp_kernel_op_144,tmp_kernel_op_144))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_146,tmp_kernel_op_146,tmp_kernel_op_146,tmp_kernel_op_146),_mm256_set_pd(tmp_kernel_op_146,tmp_kernel_op_146,tmp_kernel_op_146,tmp_kernel_op_146)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_147,tmp_kernel_op_147,tmp_kernel_op_147,tmp_kernel_op_147),_mm256_set_pd(tmp_kernel_op_147,tmp_kernel_op_147,tmp_kernel_op_147,tmp_kernel_op_147))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_148,tmp_kernel_op_148,tmp_kernel_op_148,tmp_kernel_op_148))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_189,tmp_kernel_op_189,tmp_kernel_op_189,tmp_kernel_op_189))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_201,tmp_kernel_op_201,tmp_kernel_op_201,tmp_kernel_op_201))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_204,tmp_kernel_op_204,tmp_kernel_op_204,tmp_kernel_op_204))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_206,tmp_kernel_op_206,tmp_kernel_op_206,tmp_kernel_op_206))),_mm256_mul_pd(src_dof_6,_mm256_set_pd(tmp_kernel_op_208,tmp_kernel_op_208,tmp_kernel_op_208,tmp_kernel_op_208)));
+                const __m256d elMatVec_6 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(src_dof_6,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_153,tmp_kernel_op_153,tmp_kernel_op_153,tmp_kernel_op_153),_mm256_set_pd(tmp_kernel_op_153,tmp_kernel_op_153,tmp_kernel_op_153,tmp_kernel_op_153)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_156,tmp_kernel_op_156,tmp_kernel_op_156,tmp_kernel_op_156),_mm256_set_pd(tmp_kernel_op_156,tmp_kernel_op_156,tmp_kernel_op_156,tmp_kernel_op_156))),_mm256_set_pd(tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5,tmp_kernel_op_5)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_159,tmp_kernel_op_159,tmp_kernel_op_159,tmp_kernel_op_159),_mm256_set_pd(tmp_kernel_op_159,tmp_kernel_op_159,tmp_kernel_op_159,tmp_kernel_op_159)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_160,tmp_kernel_op_160,tmp_kernel_op_160,tmp_kernel_op_160),_mm256_set_pd(tmp_kernel_op_160,tmp_kernel_op_160,tmp_kernel_op_160,tmp_kernel_op_160))),_mm256_set_pd(tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11,tmp_kernel_op_11))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_163,tmp_kernel_op_163,tmp_kernel_op_163,tmp_kernel_op_163),_mm256_set_pd(tmp_kernel_op_163,tmp_kernel_op_163,tmp_kernel_op_163,tmp_kernel_op_163)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_164,tmp_kernel_op_164,tmp_kernel_op_164,tmp_kernel_op_164),_mm256_set_pd(tmp_kernel_op_164,tmp_kernel_op_164,tmp_kernel_op_164,tmp_kernel_op_164))),_mm256_set_pd(tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17,tmp_kernel_op_17))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_167,tmp_kernel_op_167,tmp_kernel_op_167,tmp_kernel_op_167),_mm256_set_pd(tmp_kernel_op_167,tmp_kernel_op_167,tmp_kernel_op_167,tmp_kernel_op_167)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_168,tmp_kernel_op_168,tmp_kernel_op_168,tmp_kernel_op_168),_mm256_set_pd(tmp_kernel_op_168,tmp_kernel_op_168,tmp_kernel_op_168,tmp_kernel_op_168))),_mm256_set_pd(tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23,tmp_kernel_op_23))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_171,tmp_kernel_op_171,tmp_kernel_op_171,tmp_kernel_op_171),_mm256_set_pd(tmp_kernel_op_171,tmp_kernel_op_171,tmp_kernel_op_171,tmp_kernel_op_171)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_172,tmp_kernel_op_172,tmp_kernel_op_172,tmp_kernel_op_172),_mm256_set_pd(tmp_kernel_op_172,tmp_kernel_op_172,tmp_kernel_op_172,tmp_kernel_op_172))),_mm256_set_pd(tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29,tmp_kernel_op_29))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_175,tmp_kernel_op_175,tmp_kernel_op_175,tmp_kernel_op_175),_mm256_set_pd(tmp_kernel_op_175,tmp_kernel_op_175,tmp_kernel_op_175,tmp_kernel_op_175)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_176,tmp_kernel_op_176,tmp_kernel_op_176,tmp_kernel_op_176),_mm256_set_pd(tmp_kernel_op_176,tmp_kernel_op_176,tmp_kernel_op_176,tmp_kernel_op_176))),_mm256_set_pd(tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35,tmp_kernel_op_35)))),_mm256_mul_pd(src_dof_0,_mm256_set_pd(tmp_kernel_op_177,tmp_kernel_op_177,tmp_kernel_op_177,tmp_kernel_op_177))),_mm256_mul_pd(src_dof_1,_mm256_set_pd(tmp_kernel_op_190,tmp_kernel_op_190,tmp_kernel_op_190,tmp_kernel_op_190))),_mm256_mul_pd(src_dof_2,_mm256_set_pd(tmp_kernel_op_202,tmp_kernel_op_202,tmp_kernel_op_202,tmp_kernel_op_202))),_mm256_mul_pd(src_dof_3,_mm256_set_pd(tmp_kernel_op_205,tmp_kernel_op_205,tmp_kernel_op_205,tmp_kernel_op_205))),_mm256_mul_pd(src_dof_4,_mm256_set_pd(tmp_kernel_op_207,tmp_kernel_op_207,tmp_kernel_op_207,tmp_kernel_op_207))),_mm256_mul_pd(src_dof_5,_mm256_set_pd(tmp_kernel_op_208,tmp_kernel_op_208,tmp_kernel_op_208,tmp_kernel_op_208)));
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_1;
+                  
+                      const __m256d p_affine_0_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_0_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_1_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_1_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_2_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_2_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_0,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(elMatVec_1,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(elMatVec_2,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatVec_3,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(elMatVec_4,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_5,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(elMatVec_6,_mm256_loadu_pd(& _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                   }
+                }
+                const __m256d tmp_moved_constant_0 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]);
+                const __m256d tmp_moved_constant_1 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d tmp_moved_constant_2 = _mm256_loadu_pd(& _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]);
+                const __m256d tmp_moved_constant_3 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]);
+                const __m256d tmp_moved_constant_4 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]);
+                const __m256d tmp_moved_constant_5 = _mm256_loadu_pd(& _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d tmp_moved_constant_6 = _mm256_loadu_pd(& _data_src[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]);
+                const __m256d tmp_moved_constant_150 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_0,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_10,tmp_moved_constant_10,tmp_moved_constant_10,tmp_moved_constant_10),_mm256_set_pd(tmp_moved_constant_10,tmp_moved_constant_10,tmp_moved_constant_10,tmp_moved_constant_10)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_11,tmp_moved_constant_11,tmp_moved_constant_11,tmp_moved_constant_11),_mm256_set_pd(tmp_moved_constant_11,tmp_moved_constant_11,tmp_moved_constant_11,tmp_moved_constant_11))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_13,tmp_moved_constant_13,tmp_moved_constant_13,tmp_moved_constant_13),_mm256_set_pd(tmp_moved_constant_13,tmp_moved_constant_13,tmp_moved_constant_13,tmp_moved_constant_13)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_14,tmp_moved_constant_14,tmp_moved_constant_14,tmp_moved_constant_14),_mm256_set_pd(tmp_moved_constant_14,tmp_moved_constant_14,tmp_moved_constant_14,tmp_moved_constant_14))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_16,tmp_moved_constant_16,tmp_moved_constant_16,tmp_moved_constant_16),_mm256_set_pd(tmp_moved_constant_16,tmp_moved_constant_16,tmp_moved_constant_16,tmp_moved_constant_16)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_17,tmp_moved_constant_17,tmp_moved_constant_17,tmp_moved_constant_17),_mm256_set_pd(tmp_moved_constant_17,tmp_moved_constant_17,tmp_moved_constant_17,tmp_moved_constant_17))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_19,tmp_moved_constant_19,tmp_moved_constant_19,tmp_moved_constant_19),_mm256_set_pd(tmp_moved_constant_19,tmp_moved_constant_19,tmp_moved_constant_19,tmp_moved_constant_19)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_20,tmp_moved_constant_20,tmp_moved_constant_20,tmp_moved_constant_20),_mm256_set_pd(tmp_moved_constant_20,tmp_moved_constant_20,tmp_moved_constant_20,tmp_moved_constant_20))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_22,tmp_moved_constant_22,tmp_moved_constant_22,tmp_moved_constant_22),_mm256_set_pd(tmp_moved_constant_22,tmp_moved_constant_22,tmp_moved_constant_22,tmp_moved_constant_22)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_23,tmp_moved_constant_23,tmp_moved_constant_23,tmp_moved_constant_23),_mm256_set_pd(tmp_moved_constant_23,tmp_moved_constant_23,tmp_moved_constant_23,tmp_moved_constant_23))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_7,tmp_moved_constant_7,tmp_moved_constant_7,tmp_moved_constant_7),_mm256_set_pd(tmp_moved_constant_7,tmp_moved_constant_7,tmp_moved_constant_7,tmp_moved_constant_7)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_8,tmp_moved_constant_8,tmp_moved_constant_8,tmp_moved_constant_8),_mm256_set_pd(tmp_moved_constant_8,tmp_moved_constant_8,tmp_moved_constant_8,tmp_moved_constant_8))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_100,tmp_moved_constant_100,tmp_moved_constant_100,tmp_moved_constant_100))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_113,tmp_moved_constant_113,tmp_moved_constant_113,tmp_moved_constant_113))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_130,tmp_moved_constant_130,tmp_moved_constant_130,tmp_moved_constant_130))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_37,tmp_moved_constant_37,tmp_moved_constant_37,tmp_moved_constant_37))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_50,tmp_moved_constant_50,tmp_moved_constant_50,tmp_moved_constant_50))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_87,tmp_moved_constant_87,tmp_moved_constant_87,tmp_moved_constant_87)));
+                const __m256d tmp_moved_constant_151 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_1,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179,tmp_kernel_op_179),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181,tmp_kernel_op_181),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182,tmp_kernel_op_182),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183,tmp_kernel_op_183),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184,tmp_kernel_op_184),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185),_mm256_set_pd(tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131,tmp_moved_constant_131)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185,tmp_kernel_op_185),_mm256_set_pd(tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132,tmp_moved_constant_132))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_133,tmp_moved_constant_133,tmp_moved_constant_133,tmp_moved_constant_133))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_134,tmp_moved_constant_134,tmp_moved_constant_134,tmp_moved_constant_134))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_135,tmp_moved_constant_135,tmp_moved_constant_135,tmp_moved_constant_135))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_136,tmp_moved_constant_136,tmp_moved_constant_136,tmp_moved_constant_136))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_137,tmp_moved_constant_137,tmp_moved_constant_137,tmp_moved_constant_137))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_37,tmp_moved_constant_37,tmp_moved_constant_37,tmp_moved_constant_37)));
+                const __m256d tmp_moved_constant_152 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_2,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192,tmp_kernel_op_192),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194,tmp_kernel_op_194),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195,tmp_kernel_op_195),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196,tmp_kernel_op_196),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197,tmp_kernel_op_197),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198),_mm256_set_pd(tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138,tmp_moved_constant_138)),_mm256_mul_pd(_mm256_set_pd(tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198,tmp_kernel_op_198),_mm256_set_pd(tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139,tmp_moved_constant_139))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_133,tmp_moved_constant_133,tmp_moved_constant_133,tmp_moved_constant_133))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_140,tmp_moved_constant_140,tmp_moved_constant_140,tmp_moved_constant_140))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_141,tmp_moved_constant_141,tmp_moved_constant_141,tmp_moved_constant_141))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_142,tmp_moved_constant_142,tmp_moved_constant_142,tmp_moved_constant_142))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_143,tmp_moved_constant_143,tmp_moved_constant_143,tmp_moved_constant_143))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_50,tmp_moved_constant_50,tmp_moved_constant_50,tmp_moved_constant_50)));
+                const __m256d tmp_moved_constant_153 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_3,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_53,tmp_moved_constant_53,tmp_moved_constant_53,tmp_moved_constant_53),_mm256_set_pd(tmp_moved_constant_53,tmp_moved_constant_53,tmp_moved_constant_53,tmp_moved_constant_53)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_56,tmp_moved_constant_56,tmp_moved_constant_56,tmp_moved_constant_56),_mm256_set_pd(tmp_moved_constant_56,tmp_moved_constant_56,tmp_moved_constant_56,tmp_moved_constant_56))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_59,tmp_moved_constant_59,tmp_moved_constant_59,tmp_moved_constant_59),_mm256_set_pd(tmp_moved_constant_59,tmp_moved_constant_59,tmp_moved_constant_59,tmp_moved_constant_59)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_62,tmp_moved_constant_62,tmp_moved_constant_62,tmp_moved_constant_62),_mm256_set_pd(tmp_moved_constant_62,tmp_moved_constant_62,tmp_moved_constant_62,tmp_moved_constant_62))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_65,tmp_moved_constant_65,tmp_moved_constant_65,tmp_moved_constant_65),_mm256_set_pd(tmp_moved_constant_65,tmp_moved_constant_65,tmp_moved_constant_65,tmp_moved_constant_65)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_68,tmp_moved_constant_68,tmp_moved_constant_68,tmp_moved_constant_68),_mm256_set_pd(tmp_moved_constant_68,tmp_moved_constant_68,tmp_moved_constant_68,tmp_moved_constant_68))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_71,tmp_moved_constant_71,tmp_moved_constant_71,tmp_moved_constant_71),_mm256_set_pd(tmp_moved_constant_71,tmp_moved_constant_71,tmp_moved_constant_71,tmp_moved_constant_71)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_74,tmp_moved_constant_74,tmp_moved_constant_74,tmp_moved_constant_74),_mm256_set_pd(tmp_moved_constant_74,tmp_moved_constant_74,tmp_moved_constant_74,tmp_moved_constant_74))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_77,tmp_moved_constant_77,tmp_moved_constant_77,tmp_moved_constant_77),_mm256_set_pd(tmp_moved_constant_77,tmp_moved_constant_77,tmp_moved_constant_77,tmp_moved_constant_77)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_80,tmp_moved_constant_80,tmp_moved_constant_80,tmp_moved_constant_80),_mm256_set_pd(tmp_moved_constant_80,tmp_moved_constant_80,tmp_moved_constant_80,tmp_moved_constant_80))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_83,tmp_moved_constant_83,tmp_moved_constant_83,tmp_moved_constant_83),_mm256_set_pd(tmp_moved_constant_83,tmp_moved_constant_83,tmp_moved_constant_83,tmp_moved_constant_83)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_86,tmp_moved_constant_86,tmp_moved_constant_86,tmp_moved_constant_86),_mm256_set_pd(tmp_moved_constant_86,tmp_moved_constant_86,tmp_moved_constant_86,tmp_moved_constant_86))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_134,tmp_moved_constant_134,tmp_moved_constant_134,tmp_moved_constant_134))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_140,tmp_moved_constant_140,tmp_moved_constant_140,tmp_moved_constant_140))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_144,tmp_moved_constant_144,tmp_moved_constant_144,tmp_moved_constant_144))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_145,tmp_moved_constant_145,tmp_moved_constant_145,tmp_moved_constant_145))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_146,tmp_moved_constant_146,tmp_moved_constant_146,tmp_moved_constant_146))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_87,tmp_moved_constant_87,tmp_moved_constant_87,tmp_moved_constant_87)));
+                const __m256d tmp_moved_constant_154 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_4,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_88,tmp_moved_constant_88,tmp_moved_constant_88,tmp_moved_constant_88),_mm256_set_pd(tmp_moved_constant_88,tmp_moved_constant_88,tmp_moved_constant_88,tmp_moved_constant_88)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_89,tmp_moved_constant_89,tmp_moved_constant_89,tmp_moved_constant_89),_mm256_set_pd(tmp_moved_constant_89,tmp_moved_constant_89,tmp_moved_constant_89,tmp_moved_constant_89))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_90,tmp_moved_constant_90,tmp_moved_constant_90,tmp_moved_constant_90),_mm256_set_pd(tmp_moved_constant_90,tmp_moved_constant_90,tmp_moved_constant_90,tmp_moved_constant_90)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_91,tmp_moved_constant_91,tmp_moved_constant_91,tmp_moved_constant_91),_mm256_set_pd(tmp_moved_constant_91,tmp_moved_constant_91,tmp_moved_constant_91,tmp_moved_constant_91))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_92,tmp_moved_constant_92,tmp_moved_constant_92,tmp_moved_constant_92),_mm256_set_pd(tmp_moved_constant_92,tmp_moved_constant_92,tmp_moved_constant_92,tmp_moved_constant_92)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_93,tmp_moved_constant_93,tmp_moved_constant_93,tmp_moved_constant_93),_mm256_set_pd(tmp_moved_constant_93,tmp_moved_constant_93,tmp_moved_constant_93,tmp_moved_constant_93))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_94,tmp_moved_constant_94,tmp_moved_constant_94,tmp_moved_constant_94),_mm256_set_pd(tmp_moved_constant_94,tmp_moved_constant_94,tmp_moved_constant_94,tmp_moved_constant_94)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_95,tmp_moved_constant_95,tmp_moved_constant_95,tmp_moved_constant_95),_mm256_set_pd(tmp_moved_constant_95,tmp_moved_constant_95,tmp_moved_constant_95,tmp_moved_constant_95))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_96,tmp_moved_constant_96,tmp_moved_constant_96,tmp_moved_constant_96),_mm256_set_pd(tmp_moved_constant_96,tmp_moved_constant_96,tmp_moved_constant_96,tmp_moved_constant_96)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_97,tmp_moved_constant_97,tmp_moved_constant_97,tmp_moved_constant_97),_mm256_set_pd(tmp_moved_constant_97,tmp_moved_constant_97,tmp_moved_constant_97,tmp_moved_constant_97))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_98,tmp_moved_constant_98,tmp_moved_constant_98,tmp_moved_constant_98),_mm256_set_pd(tmp_moved_constant_98,tmp_moved_constant_98,tmp_moved_constant_98,tmp_moved_constant_98)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_99,tmp_moved_constant_99,tmp_moved_constant_99,tmp_moved_constant_99),_mm256_set_pd(tmp_moved_constant_99,tmp_moved_constant_99,tmp_moved_constant_99,tmp_moved_constant_99))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_100,tmp_moved_constant_100,tmp_moved_constant_100,tmp_moved_constant_100))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_135,tmp_moved_constant_135,tmp_moved_constant_135,tmp_moved_constant_135))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_141,tmp_moved_constant_141,tmp_moved_constant_141,tmp_moved_constant_141))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_144,tmp_moved_constant_144,tmp_moved_constant_144,tmp_moved_constant_144))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_147,tmp_moved_constant_147,tmp_moved_constant_147,tmp_moved_constant_147))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_148,tmp_moved_constant_148,tmp_moved_constant_148,tmp_moved_constant_148)));
+                const __m256d tmp_moved_constant_155 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_5,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_101,tmp_moved_constant_101,tmp_moved_constant_101,tmp_moved_constant_101),_mm256_set_pd(tmp_moved_constant_101,tmp_moved_constant_101,tmp_moved_constant_101,tmp_moved_constant_101)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_102,tmp_moved_constant_102,tmp_moved_constant_102,tmp_moved_constant_102),_mm256_set_pd(tmp_moved_constant_102,tmp_moved_constant_102,tmp_moved_constant_102,tmp_moved_constant_102))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_103,tmp_moved_constant_103,tmp_moved_constant_103,tmp_moved_constant_103),_mm256_set_pd(tmp_moved_constant_103,tmp_moved_constant_103,tmp_moved_constant_103,tmp_moved_constant_103)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_104,tmp_moved_constant_104,tmp_moved_constant_104,tmp_moved_constant_104),_mm256_set_pd(tmp_moved_constant_104,tmp_moved_constant_104,tmp_moved_constant_104,tmp_moved_constant_104))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_105,tmp_moved_constant_105,tmp_moved_constant_105,tmp_moved_constant_105),_mm256_set_pd(tmp_moved_constant_105,tmp_moved_constant_105,tmp_moved_constant_105,tmp_moved_constant_105)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_106,tmp_moved_constant_106,tmp_moved_constant_106,tmp_moved_constant_106),_mm256_set_pd(tmp_moved_constant_106,tmp_moved_constant_106,tmp_moved_constant_106,tmp_moved_constant_106))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_107,tmp_moved_constant_107,tmp_moved_constant_107,tmp_moved_constant_107),_mm256_set_pd(tmp_moved_constant_107,tmp_moved_constant_107,tmp_moved_constant_107,tmp_moved_constant_107)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_108,tmp_moved_constant_108,tmp_moved_constant_108,tmp_moved_constant_108),_mm256_set_pd(tmp_moved_constant_108,tmp_moved_constant_108,tmp_moved_constant_108,tmp_moved_constant_108))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_109,tmp_moved_constant_109,tmp_moved_constant_109,tmp_moved_constant_109),_mm256_set_pd(tmp_moved_constant_109,tmp_moved_constant_109,tmp_moved_constant_109,tmp_moved_constant_109)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_110,tmp_moved_constant_110,tmp_moved_constant_110,tmp_moved_constant_110),_mm256_set_pd(tmp_moved_constant_110,tmp_moved_constant_110,tmp_moved_constant_110,tmp_moved_constant_110))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_111,tmp_moved_constant_111,tmp_moved_constant_111,tmp_moved_constant_111),_mm256_set_pd(tmp_moved_constant_111,tmp_moved_constant_111,tmp_moved_constant_111,tmp_moved_constant_111)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_112,tmp_moved_constant_112,tmp_moved_constant_112,tmp_moved_constant_112),_mm256_set_pd(tmp_moved_constant_112,tmp_moved_constant_112,tmp_moved_constant_112,tmp_moved_constant_112))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_113,tmp_moved_constant_113,tmp_moved_constant_113,tmp_moved_constant_113))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_136,tmp_moved_constant_136,tmp_moved_constant_136,tmp_moved_constant_136))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_142,tmp_moved_constant_142,tmp_moved_constant_142,tmp_moved_constant_142))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_145,tmp_moved_constant_145,tmp_moved_constant_145,tmp_moved_constant_145))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_147,tmp_moved_constant_147,tmp_moved_constant_147,tmp_moved_constant_147))),_mm256_mul_pd(tmp_moved_constant_6,_mm256_set_pd(tmp_moved_constant_149,tmp_moved_constant_149,tmp_moved_constant_149,tmp_moved_constant_149)));
+                const __m256d tmp_moved_constant_156 = _mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(tmp_moved_constant_6,_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_116,tmp_moved_constant_116,tmp_moved_constant_116,tmp_moved_constant_116),_mm256_set_pd(tmp_moved_constant_116,tmp_moved_constant_116,tmp_moved_constant_116,tmp_moved_constant_116)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_119,tmp_moved_constant_119,tmp_moved_constant_119,tmp_moved_constant_119),_mm256_set_pd(tmp_moved_constant_119,tmp_moved_constant_119,tmp_moved_constant_119,tmp_moved_constant_119))),_mm256_set_pd(tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9,tmp_moved_constant_9)),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_120,tmp_moved_constant_120,tmp_moved_constant_120,tmp_moved_constant_120),_mm256_set_pd(tmp_moved_constant_120,tmp_moved_constant_120,tmp_moved_constant_120,tmp_moved_constant_120)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_121,tmp_moved_constant_121,tmp_moved_constant_121,tmp_moved_constant_121),_mm256_set_pd(tmp_moved_constant_121,tmp_moved_constant_121,tmp_moved_constant_121,tmp_moved_constant_121))),_mm256_set_pd(tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12,tmp_moved_constant_12))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_122,tmp_moved_constant_122,tmp_moved_constant_122,tmp_moved_constant_122),_mm256_set_pd(tmp_moved_constant_122,tmp_moved_constant_122,tmp_moved_constant_122,tmp_moved_constant_122)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_123,tmp_moved_constant_123,tmp_moved_constant_123,tmp_moved_constant_123),_mm256_set_pd(tmp_moved_constant_123,tmp_moved_constant_123,tmp_moved_constant_123,tmp_moved_constant_123))),_mm256_set_pd(tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15,tmp_moved_constant_15))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_124,tmp_moved_constant_124,tmp_moved_constant_124,tmp_moved_constant_124),_mm256_set_pd(tmp_moved_constant_124,tmp_moved_constant_124,tmp_moved_constant_124,tmp_moved_constant_124)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_125,tmp_moved_constant_125,tmp_moved_constant_125,tmp_moved_constant_125),_mm256_set_pd(tmp_moved_constant_125,tmp_moved_constant_125,tmp_moved_constant_125,tmp_moved_constant_125))),_mm256_set_pd(tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18,tmp_moved_constant_18))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_126,tmp_moved_constant_126,tmp_moved_constant_126,tmp_moved_constant_126),_mm256_set_pd(tmp_moved_constant_126,tmp_moved_constant_126,tmp_moved_constant_126,tmp_moved_constant_126)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_127,tmp_moved_constant_127,tmp_moved_constant_127,tmp_moved_constant_127),_mm256_set_pd(tmp_moved_constant_127,tmp_moved_constant_127,tmp_moved_constant_127,tmp_moved_constant_127))),_mm256_set_pd(tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21,tmp_moved_constant_21))),_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_128,tmp_moved_constant_128,tmp_moved_constant_128,tmp_moved_constant_128),_mm256_set_pd(tmp_moved_constant_128,tmp_moved_constant_128,tmp_moved_constant_128,tmp_moved_constant_128)),_mm256_mul_pd(_mm256_set_pd(tmp_moved_constant_129,tmp_moved_constant_129,tmp_moved_constant_129,tmp_moved_constant_129),_mm256_set_pd(tmp_moved_constant_129,tmp_moved_constant_129,tmp_moved_constant_129,tmp_moved_constant_129))),_mm256_set_pd(tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24,tmp_moved_constant_24)))),_mm256_mul_pd(tmp_moved_constant_0,_mm256_set_pd(tmp_moved_constant_130,tmp_moved_constant_130,tmp_moved_constant_130,tmp_moved_constant_130))),_mm256_mul_pd(tmp_moved_constant_1,_mm256_set_pd(tmp_moved_constant_137,tmp_moved_constant_137,tmp_moved_constant_137,tmp_moved_constant_137))),_mm256_mul_pd(tmp_moved_constant_2,_mm256_set_pd(tmp_moved_constant_143,tmp_moved_constant_143,tmp_moved_constant_143,tmp_moved_constant_143))),_mm256_mul_pd(tmp_moved_constant_3,_mm256_set_pd(tmp_moved_constant_146,tmp_moved_constant_146,tmp_moved_constant_146,tmp_moved_constant_146))),_mm256_mul_pd(tmp_moved_constant_4,_mm256_set_pd(tmp_moved_constant_148,tmp_moved_constant_148,tmp_moved_constant_148,tmp_moved_constant_148))),_mm256_mul_pd(tmp_moved_constant_5,_mm256_set_pd(tmp_moved_constant_149,tmp_moved_constant_149,tmp_moved_constant_149,tmp_moved_constant_149)));
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_1;
+                  
+                      const __m256d p_affine_0_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_0_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_1_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_1_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_2_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_2_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(tmp_moved_constant_150,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(tmp_moved_constant_151,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1],_mm256_add_pd(tmp_moved_constant_152,_mm256_loadu_pd(& _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(tmp_moved_constant_153,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1],_mm256_add_pd(tmp_moved_constant_154,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(tmp_moved_constant_155,_mm256_loadu_pd(& _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(tmp_moved_constant_156,_mm256_loadu_pd(& _data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                   }
+                }
+             }
+             for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
+             {
+                const real_t src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                const real_t src_dof_2 = _data_srcVertex[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_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t src_dof_6 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t elMatVec_0 = src_dof_0*(tmp_kernel_op_11*((tmp_kernel_op_10*tmp_kernel_op_10) + (tmp_kernel_op_9*tmp_kernel_op_9)) + tmp_kernel_op_17*((tmp_kernel_op_15*tmp_kernel_op_15) + (tmp_kernel_op_16*tmp_kernel_op_16)) + tmp_kernel_op_23*((tmp_kernel_op_21*tmp_kernel_op_21) + (tmp_kernel_op_22*tmp_kernel_op_22)) + tmp_kernel_op_29*((tmp_kernel_op_27*tmp_kernel_op_27) + (tmp_kernel_op_28*tmp_kernel_op_28)) + tmp_kernel_op_35*((tmp_kernel_op_33*tmp_kernel_op_33) + (tmp_kernel_op_34*tmp_kernel_op_34)) + tmp_kernel_op_5*((tmp_kernel_op_3*tmp_kernel_op_3) + (tmp_kernel_op_4*tmp_kernel_op_4))) + src_dof_1*tmp_kernel_op_54 + src_dof_2*tmp_kernel_op_73 + src_dof_3*tmp_kernel_op_110 + src_dof_4*tmp_kernel_op_129 + src_dof_5*tmp_kernel_op_148 + src_dof_6*tmp_kernel_op_177;
+                const real_t elMatVec_1 = src_dof_0*tmp_kernel_op_54 + src_dof_1*(tmp_kernel_op_11*(tmp_kernel_op_178*tmp_kernel_op_181 + tmp_kernel_op_180*tmp_kernel_op_181) + tmp_kernel_op_17*(tmp_kernel_op_178*tmp_kernel_op_182 + tmp_kernel_op_180*tmp_kernel_op_182) + tmp_kernel_op_23*(tmp_kernel_op_178*tmp_kernel_op_183 + tmp_kernel_op_180*tmp_kernel_op_183) + tmp_kernel_op_29*(tmp_kernel_op_178*tmp_kernel_op_184 + tmp_kernel_op_180*tmp_kernel_op_184) + tmp_kernel_op_35*(tmp_kernel_op_178*tmp_kernel_op_185 + tmp_kernel_op_180*tmp_kernel_op_185) + tmp_kernel_op_5*(tmp_kernel_op_178*tmp_kernel_op_179 + tmp_kernel_op_179*tmp_kernel_op_180)) + src_dof_2*tmp_kernel_op_186 + src_dof_3*tmp_kernel_op_187 + src_dof_4*tmp_kernel_op_188 + src_dof_5*tmp_kernel_op_189 + src_dof_6*tmp_kernel_op_190;
+                const real_t elMatVec_2 = src_dof_0*tmp_kernel_op_73 + src_dof_1*tmp_kernel_op_186 + src_dof_2*(tmp_kernel_op_11*(tmp_kernel_op_191*tmp_kernel_op_194 + tmp_kernel_op_193*tmp_kernel_op_194) + tmp_kernel_op_17*(tmp_kernel_op_191*tmp_kernel_op_195 + tmp_kernel_op_193*tmp_kernel_op_195) + tmp_kernel_op_23*(tmp_kernel_op_191*tmp_kernel_op_196 + tmp_kernel_op_193*tmp_kernel_op_196) + tmp_kernel_op_29*(tmp_kernel_op_191*tmp_kernel_op_197 + tmp_kernel_op_193*tmp_kernel_op_197) + tmp_kernel_op_35*(tmp_kernel_op_191*tmp_kernel_op_198 + tmp_kernel_op_193*tmp_kernel_op_198) + tmp_kernel_op_5*(tmp_kernel_op_191*tmp_kernel_op_192 + tmp_kernel_op_192*tmp_kernel_op_193)) + src_dof_3*tmp_kernel_op_199 + src_dof_4*tmp_kernel_op_200 + src_dof_5*tmp_kernel_op_201 + src_dof_6*tmp_kernel_op_202;
+                const real_t elMatVec_3 = src_dof_0*tmp_kernel_op_110 + src_dof_1*tmp_kernel_op_187 + src_dof_2*tmp_kernel_op_199 + src_dof_3*(tmp_kernel_op_11*((tmp_kernel_op_82*tmp_kernel_op_82) + (tmp_kernel_op_85*tmp_kernel_op_85)) + tmp_kernel_op_17*((tmp_kernel_op_88*tmp_kernel_op_88) + (tmp_kernel_op_91*tmp_kernel_op_91)) + tmp_kernel_op_23*((tmp_kernel_op_94*tmp_kernel_op_94) + (tmp_kernel_op_97*tmp_kernel_op_97)) + tmp_kernel_op_29*((tmp_kernel_op_100*tmp_kernel_op_100) + (tmp_kernel_op_103*tmp_kernel_op_103)) + tmp_kernel_op_35*((tmp_kernel_op_106*tmp_kernel_op_106) + (tmp_kernel_op_109*tmp_kernel_op_109)) + tmp_kernel_op_5*((tmp_kernel_op_76*tmp_kernel_op_76) + (tmp_kernel_op_79*tmp_kernel_op_79))) + src_dof_4*tmp_kernel_op_203 + src_dof_5*tmp_kernel_op_204 + src_dof_6*tmp_kernel_op_205;
+                const real_t elMatVec_4 = src_dof_0*tmp_kernel_op_129 + src_dof_1*tmp_kernel_op_188 + src_dof_2*tmp_kernel_op_200 + src_dof_3*tmp_kernel_op_203 + src_dof_4*(tmp_kernel_op_11*((tmp_kernel_op_115*tmp_kernel_op_115) + (tmp_kernel_op_116*tmp_kernel_op_116)) + tmp_kernel_op_17*((tmp_kernel_op_118*tmp_kernel_op_118) + (tmp_kernel_op_119*tmp_kernel_op_119)) + tmp_kernel_op_23*((tmp_kernel_op_121*tmp_kernel_op_121) + (tmp_kernel_op_122*tmp_kernel_op_122)) + tmp_kernel_op_29*((tmp_kernel_op_124*tmp_kernel_op_124) + (tmp_kernel_op_125*tmp_kernel_op_125)) + tmp_kernel_op_35*((tmp_kernel_op_127*tmp_kernel_op_127) + (tmp_kernel_op_128*tmp_kernel_op_128)) + tmp_kernel_op_5*((tmp_kernel_op_112*tmp_kernel_op_112) + (tmp_kernel_op_113*tmp_kernel_op_113))) + src_dof_5*tmp_kernel_op_206 + src_dof_6*tmp_kernel_op_207;
+                const real_t elMatVec_5 = src_dof_0*tmp_kernel_op_148 + src_dof_1*tmp_kernel_op_189 + src_dof_2*tmp_kernel_op_201 + src_dof_3*tmp_kernel_op_204 + src_dof_4*tmp_kernel_op_206 + src_dof_5*(tmp_kernel_op_11*((tmp_kernel_op_134*tmp_kernel_op_134) + (tmp_kernel_op_135*tmp_kernel_op_135)) + tmp_kernel_op_17*((tmp_kernel_op_137*tmp_kernel_op_137) + (tmp_kernel_op_138*tmp_kernel_op_138)) + tmp_kernel_op_23*((tmp_kernel_op_140*tmp_kernel_op_140) + (tmp_kernel_op_141*tmp_kernel_op_141)) + tmp_kernel_op_29*((tmp_kernel_op_143*tmp_kernel_op_143) + (tmp_kernel_op_144*tmp_kernel_op_144)) + tmp_kernel_op_35*((tmp_kernel_op_146*tmp_kernel_op_146) + (tmp_kernel_op_147*tmp_kernel_op_147)) + tmp_kernel_op_5*((tmp_kernel_op_131*tmp_kernel_op_131) + (tmp_kernel_op_132*tmp_kernel_op_132))) + src_dof_6*tmp_kernel_op_208;
+                const real_t elMatVec_6 = src_dof_0*tmp_kernel_op_177 + src_dof_1*tmp_kernel_op_190 + src_dof_2*tmp_kernel_op_202 + src_dof_3*tmp_kernel_op_205 + src_dof_4*tmp_kernel_op_207 + src_dof_5*tmp_kernel_op_208 + src_dof_6*(tmp_kernel_op_11*((tmp_kernel_op_159*tmp_kernel_op_159) + (tmp_kernel_op_160*tmp_kernel_op_160)) + tmp_kernel_op_17*((tmp_kernel_op_163*tmp_kernel_op_163) + (tmp_kernel_op_164*tmp_kernel_op_164)) + tmp_kernel_op_23*((tmp_kernel_op_167*tmp_kernel_op_167) + (tmp_kernel_op_168*tmp_kernel_op_168)) + tmp_kernel_op_29*((tmp_kernel_op_171*tmp_kernel_op_171) + (tmp_kernel_op_172*tmp_kernel_op_172)) + tmp_kernel_op_35*((tmp_kernel_op_175*tmp_kernel_op_175) + (tmp_kernel_op_176*tmp_kernel_op_176)) + tmp_kernel_op_5*((tmp_kernel_op_153*tmp_kernel_op_153) + (tmp_kernel_op_156*tmp_kernel_op_156)));
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_6 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   }
+                }
+                const real_t tmp_moved_constant_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                const real_t tmp_moved_constant_1 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const real_t tmp_moved_constant_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                const real_t tmp_moved_constant_3 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                const real_t tmp_moved_constant_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                const real_t tmp_moved_constant_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t tmp_moved_constant_6 = _data_src[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t tmp_moved_constant_150 = tmp_moved_constant_0*(tmp_moved_constant_12*((tmp_moved_constant_10*tmp_moved_constant_10) + (tmp_moved_constant_11*tmp_moved_constant_11)) + tmp_moved_constant_15*((tmp_moved_constant_13*tmp_moved_constant_13) + (tmp_moved_constant_14*tmp_moved_constant_14)) + tmp_moved_constant_18*((tmp_moved_constant_16*tmp_moved_constant_16) + (tmp_moved_constant_17*tmp_moved_constant_17)) + tmp_moved_constant_21*((tmp_moved_constant_19*tmp_moved_constant_19) + (tmp_moved_constant_20*tmp_moved_constant_20)) + tmp_moved_constant_24*((tmp_moved_constant_22*tmp_moved_constant_22) + (tmp_moved_constant_23*tmp_moved_constant_23)) + tmp_moved_constant_9*((tmp_moved_constant_7*tmp_moved_constant_7) + (tmp_moved_constant_8*tmp_moved_constant_8))) + tmp_moved_constant_1*tmp_moved_constant_37 + tmp_moved_constant_100*tmp_moved_constant_4 + tmp_moved_constant_113*tmp_moved_constant_5 + tmp_moved_constant_130*tmp_moved_constant_6 + tmp_moved_constant_2*tmp_moved_constant_50 + tmp_moved_constant_3*tmp_moved_constant_87;
+                const real_t tmp_moved_constant_151 = tmp_moved_constant_0*tmp_moved_constant_37 + tmp_moved_constant_1*(tmp_moved_constant_12*(tmp_kernel_op_181*tmp_moved_constant_131 + tmp_kernel_op_181*tmp_moved_constant_132) + tmp_moved_constant_15*(tmp_kernel_op_182*tmp_moved_constant_131 + tmp_kernel_op_182*tmp_moved_constant_132) + tmp_moved_constant_18*(tmp_kernel_op_183*tmp_moved_constant_131 + tmp_kernel_op_183*tmp_moved_constant_132) + tmp_moved_constant_21*(tmp_kernel_op_184*tmp_moved_constant_131 + tmp_kernel_op_184*tmp_moved_constant_132) + tmp_moved_constant_24*(tmp_kernel_op_185*tmp_moved_constant_131 + tmp_kernel_op_185*tmp_moved_constant_132) + tmp_moved_constant_9*(tmp_kernel_op_179*tmp_moved_constant_131 + tmp_kernel_op_179*tmp_moved_constant_132)) + tmp_moved_constant_133*tmp_moved_constant_2 + tmp_moved_constant_134*tmp_moved_constant_3 + tmp_moved_constant_135*tmp_moved_constant_4 + tmp_moved_constant_136*tmp_moved_constant_5 + tmp_moved_constant_137*tmp_moved_constant_6;
+                const real_t tmp_moved_constant_152 = tmp_moved_constant_0*tmp_moved_constant_50 + tmp_moved_constant_1*tmp_moved_constant_133 + tmp_moved_constant_140*tmp_moved_constant_3 + tmp_moved_constant_141*tmp_moved_constant_4 + tmp_moved_constant_142*tmp_moved_constant_5 + tmp_moved_constant_143*tmp_moved_constant_6 + tmp_moved_constant_2*(tmp_moved_constant_12*(tmp_kernel_op_194*tmp_moved_constant_138 + tmp_kernel_op_194*tmp_moved_constant_139) + tmp_moved_constant_15*(tmp_kernel_op_195*tmp_moved_constant_138 + tmp_kernel_op_195*tmp_moved_constant_139) + tmp_moved_constant_18*(tmp_kernel_op_196*tmp_moved_constant_138 + tmp_kernel_op_196*tmp_moved_constant_139) + tmp_moved_constant_21*(tmp_kernel_op_197*tmp_moved_constant_138 + tmp_kernel_op_197*tmp_moved_constant_139) + tmp_moved_constant_24*(tmp_kernel_op_198*tmp_moved_constant_138 + tmp_kernel_op_198*tmp_moved_constant_139) + tmp_moved_constant_9*(tmp_kernel_op_192*tmp_moved_constant_138 + tmp_kernel_op_192*tmp_moved_constant_139));
+                const real_t tmp_moved_constant_153 = tmp_moved_constant_0*tmp_moved_constant_87 + tmp_moved_constant_1*tmp_moved_constant_134 + tmp_moved_constant_140*tmp_moved_constant_2 + tmp_moved_constant_144*tmp_moved_constant_4 + tmp_moved_constant_145*tmp_moved_constant_5 + tmp_moved_constant_146*tmp_moved_constant_6 + tmp_moved_constant_3*(tmp_moved_constant_12*((tmp_moved_constant_59*tmp_moved_constant_59) + (tmp_moved_constant_62*tmp_moved_constant_62)) + tmp_moved_constant_15*((tmp_moved_constant_65*tmp_moved_constant_65) + (tmp_moved_constant_68*tmp_moved_constant_68)) + tmp_moved_constant_18*((tmp_moved_constant_71*tmp_moved_constant_71) + (tmp_moved_constant_74*tmp_moved_constant_74)) + tmp_moved_constant_21*((tmp_moved_constant_77*tmp_moved_constant_77) + (tmp_moved_constant_80*tmp_moved_constant_80)) + tmp_moved_constant_24*((tmp_moved_constant_83*tmp_moved_constant_83) + (tmp_moved_constant_86*tmp_moved_constant_86)) + tmp_moved_constant_9*((tmp_moved_constant_53*tmp_moved_constant_53) + (tmp_moved_constant_56*tmp_moved_constant_56)));
+                const real_t tmp_moved_constant_154 = tmp_moved_constant_0*tmp_moved_constant_100 + tmp_moved_constant_1*tmp_moved_constant_135 + tmp_moved_constant_141*tmp_moved_constant_2 + tmp_moved_constant_144*tmp_moved_constant_3 + tmp_moved_constant_147*tmp_moved_constant_5 + tmp_moved_constant_148*tmp_moved_constant_6 + tmp_moved_constant_4*(tmp_moved_constant_12*((tmp_moved_constant_90*tmp_moved_constant_90) + (tmp_moved_constant_91*tmp_moved_constant_91)) + tmp_moved_constant_15*((tmp_moved_constant_92*tmp_moved_constant_92) + (tmp_moved_constant_93*tmp_moved_constant_93)) + tmp_moved_constant_18*((tmp_moved_constant_94*tmp_moved_constant_94) + (tmp_moved_constant_95*tmp_moved_constant_95)) + tmp_moved_constant_21*((tmp_moved_constant_96*tmp_moved_constant_96) + (tmp_moved_constant_97*tmp_moved_constant_97)) + tmp_moved_constant_24*((tmp_moved_constant_98*tmp_moved_constant_98) + (tmp_moved_constant_99*tmp_moved_constant_99)) + tmp_moved_constant_9*((tmp_moved_constant_88*tmp_moved_constant_88) + (tmp_moved_constant_89*tmp_moved_constant_89)));
+                const real_t tmp_moved_constant_155 = tmp_moved_constant_0*tmp_moved_constant_113 + tmp_moved_constant_1*tmp_moved_constant_136 + tmp_moved_constant_142*tmp_moved_constant_2 + tmp_moved_constant_145*tmp_moved_constant_3 + tmp_moved_constant_147*tmp_moved_constant_4 + tmp_moved_constant_149*tmp_moved_constant_6 + tmp_moved_constant_5*(tmp_moved_constant_12*((tmp_moved_constant_103*tmp_moved_constant_103) + (tmp_moved_constant_104*tmp_moved_constant_104)) + tmp_moved_constant_15*((tmp_moved_constant_105*tmp_moved_constant_105) + (tmp_moved_constant_106*tmp_moved_constant_106)) + tmp_moved_constant_18*((tmp_moved_constant_107*tmp_moved_constant_107) + (tmp_moved_constant_108*tmp_moved_constant_108)) + tmp_moved_constant_21*((tmp_moved_constant_109*tmp_moved_constant_109) + (tmp_moved_constant_110*tmp_moved_constant_110)) + tmp_moved_constant_24*((tmp_moved_constant_111*tmp_moved_constant_111) + (tmp_moved_constant_112*tmp_moved_constant_112)) + tmp_moved_constant_9*((tmp_moved_constant_101*tmp_moved_constant_101) + (tmp_moved_constant_102*tmp_moved_constant_102)));
+                const real_t tmp_moved_constant_156 = tmp_moved_constant_0*tmp_moved_constant_130 + tmp_moved_constant_1*tmp_moved_constant_137 + tmp_moved_constant_143*tmp_moved_constant_2 + tmp_moved_constant_146*tmp_moved_constant_3 + tmp_moved_constant_148*tmp_moved_constant_4 + tmp_moved_constant_149*tmp_moved_constant_5 + tmp_moved_constant_6*(tmp_moved_constant_12*((tmp_moved_constant_120*tmp_moved_constant_120) + (tmp_moved_constant_121*tmp_moved_constant_121)) + tmp_moved_constant_15*((tmp_moved_constant_122*tmp_moved_constant_122) + (tmp_moved_constant_123*tmp_moved_constant_123)) + tmp_moved_constant_18*((tmp_moved_constant_124*tmp_moved_constant_124) + (tmp_moved_constant_125*tmp_moved_constant_125)) + tmp_moved_constant_21*((tmp_moved_constant_126*tmp_moved_constant_126) + (tmp_moved_constant_127*tmp_moved_constant_127)) + tmp_moved_constant_24*((tmp_moved_constant_128*tmp_moved_constant_128) + (tmp_moved_constant_129*tmp_moved_constant_129)) + tmp_moved_constant_9*((tmp_moved_constant_116*tmp_moved_constant_116) + (tmp_moved_constant_119*tmp_moved_constant_119)));
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = tmp_moved_constant_150 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_151 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = tmp_moved_constant_152 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                      _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_153 + _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = tmp_moved_constant_154 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_155 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_156 + _data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   }
+                }
+             }
+          }
+          {
+             for (int64_t ctr_0 = -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
+             {
+                const real_t src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                const real_t src_dof_2 = _data_srcVertex[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_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                const real_t src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t src_dof_6 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                const real_t elMatVec_0 = src_dof_0*(tmp_kernel_op_11*((tmp_kernel_op_10*tmp_kernel_op_10) + (tmp_kernel_op_9*tmp_kernel_op_9)) + tmp_kernel_op_17*((tmp_kernel_op_15*tmp_kernel_op_15) + (tmp_kernel_op_16*tmp_kernel_op_16)) + tmp_kernel_op_23*((tmp_kernel_op_21*tmp_kernel_op_21) + (tmp_kernel_op_22*tmp_kernel_op_22)) + tmp_kernel_op_29*((tmp_kernel_op_27*tmp_kernel_op_27) + (tmp_kernel_op_28*tmp_kernel_op_28)) + tmp_kernel_op_35*((tmp_kernel_op_33*tmp_kernel_op_33) + (tmp_kernel_op_34*tmp_kernel_op_34)) + tmp_kernel_op_5*((tmp_kernel_op_3*tmp_kernel_op_3) + (tmp_kernel_op_4*tmp_kernel_op_4))) + src_dof_1*tmp_kernel_op_54 + src_dof_2*tmp_kernel_op_73 + src_dof_3*tmp_kernel_op_110 + src_dof_4*tmp_kernel_op_129 + src_dof_5*tmp_kernel_op_148 + src_dof_6*tmp_kernel_op_177;
+                const real_t elMatVec_1 = src_dof_0*tmp_kernel_op_54 + src_dof_1*(tmp_kernel_op_11*(tmp_kernel_op_178*tmp_kernel_op_181 + tmp_kernel_op_180*tmp_kernel_op_181) + tmp_kernel_op_17*(tmp_kernel_op_178*tmp_kernel_op_182 + tmp_kernel_op_180*tmp_kernel_op_182) + tmp_kernel_op_23*(tmp_kernel_op_178*tmp_kernel_op_183 + tmp_kernel_op_180*tmp_kernel_op_183) + tmp_kernel_op_29*(tmp_kernel_op_178*tmp_kernel_op_184 + tmp_kernel_op_180*tmp_kernel_op_184) + tmp_kernel_op_35*(tmp_kernel_op_178*tmp_kernel_op_185 + tmp_kernel_op_180*tmp_kernel_op_185) + tmp_kernel_op_5*(tmp_kernel_op_178*tmp_kernel_op_179 + tmp_kernel_op_179*tmp_kernel_op_180)) + src_dof_2*tmp_kernel_op_186 + src_dof_3*tmp_kernel_op_187 + src_dof_4*tmp_kernel_op_188 + src_dof_5*tmp_kernel_op_189 + src_dof_6*tmp_kernel_op_190;
+                const real_t elMatVec_2 = src_dof_0*tmp_kernel_op_73 + src_dof_1*tmp_kernel_op_186 + src_dof_2*(tmp_kernel_op_11*(tmp_kernel_op_191*tmp_kernel_op_194 + tmp_kernel_op_193*tmp_kernel_op_194) + tmp_kernel_op_17*(tmp_kernel_op_191*tmp_kernel_op_195 + tmp_kernel_op_193*tmp_kernel_op_195) + tmp_kernel_op_23*(tmp_kernel_op_191*tmp_kernel_op_196 + tmp_kernel_op_193*tmp_kernel_op_196) + tmp_kernel_op_29*(tmp_kernel_op_191*tmp_kernel_op_197 + tmp_kernel_op_193*tmp_kernel_op_197) + tmp_kernel_op_35*(tmp_kernel_op_191*tmp_kernel_op_198 + tmp_kernel_op_193*tmp_kernel_op_198) + tmp_kernel_op_5*(tmp_kernel_op_191*tmp_kernel_op_192 + tmp_kernel_op_192*tmp_kernel_op_193)) + src_dof_3*tmp_kernel_op_199 + src_dof_4*tmp_kernel_op_200 + src_dof_5*tmp_kernel_op_201 + src_dof_6*tmp_kernel_op_202;
+                const real_t elMatVec_3 = src_dof_0*tmp_kernel_op_110 + src_dof_1*tmp_kernel_op_187 + src_dof_2*tmp_kernel_op_199 + src_dof_3*(tmp_kernel_op_11*((tmp_kernel_op_82*tmp_kernel_op_82) + (tmp_kernel_op_85*tmp_kernel_op_85)) + tmp_kernel_op_17*((tmp_kernel_op_88*tmp_kernel_op_88) + (tmp_kernel_op_91*tmp_kernel_op_91)) + tmp_kernel_op_23*((tmp_kernel_op_94*tmp_kernel_op_94) + (tmp_kernel_op_97*tmp_kernel_op_97)) + tmp_kernel_op_29*((tmp_kernel_op_100*tmp_kernel_op_100) + (tmp_kernel_op_103*tmp_kernel_op_103)) + tmp_kernel_op_35*((tmp_kernel_op_106*tmp_kernel_op_106) + (tmp_kernel_op_109*tmp_kernel_op_109)) + tmp_kernel_op_5*((tmp_kernel_op_76*tmp_kernel_op_76) + (tmp_kernel_op_79*tmp_kernel_op_79))) + src_dof_4*tmp_kernel_op_203 + src_dof_5*tmp_kernel_op_204 + src_dof_6*tmp_kernel_op_205;
+                const real_t elMatVec_4 = src_dof_0*tmp_kernel_op_129 + src_dof_1*tmp_kernel_op_188 + src_dof_2*tmp_kernel_op_200 + src_dof_3*tmp_kernel_op_203 + src_dof_4*(tmp_kernel_op_11*((tmp_kernel_op_115*tmp_kernel_op_115) + (tmp_kernel_op_116*tmp_kernel_op_116)) + tmp_kernel_op_17*((tmp_kernel_op_118*tmp_kernel_op_118) + (tmp_kernel_op_119*tmp_kernel_op_119)) + tmp_kernel_op_23*((tmp_kernel_op_121*tmp_kernel_op_121) + (tmp_kernel_op_122*tmp_kernel_op_122)) + tmp_kernel_op_29*((tmp_kernel_op_124*tmp_kernel_op_124) + (tmp_kernel_op_125*tmp_kernel_op_125)) + tmp_kernel_op_35*((tmp_kernel_op_127*tmp_kernel_op_127) + (tmp_kernel_op_128*tmp_kernel_op_128)) + tmp_kernel_op_5*((tmp_kernel_op_112*tmp_kernel_op_112) + (tmp_kernel_op_113*tmp_kernel_op_113))) + src_dof_5*tmp_kernel_op_206 + src_dof_6*tmp_kernel_op_207;
+                const real_t elMatVec_5 = src_dof_0*tmp_kernel_op_148 + src_dof_1*tmp_kernel_op_189 + src_dof_2*tmp_kernel_op_201 + src_dof_3*tmp_kernel_op_204 + src_dof_4*tmp_kernel_op_206 + src_dof_5*(tmp_kernel_op_11*((tmp_kernel_op_134*tmp_kernel_op_134) + (tmp_kernel_op_135*tmp_kernel_op_135)) + tmp_kernel_op_17*((tmp_kernel_op_137*tmp_kernel_op_137) + (tmp_kernel_op_138*tmp_kernel_op_138)) + tmp_kernel_op_23*((tmp_kernel_op_140*tmp_kernel_op_140) + (tmp_kernel_op_141*tmp_kernel_op_141)) + tmp_kernel_op_29*((tmp_kernel_op_143*tmp_kernel_op_143) + (tmp_kernel_op_144*tmp_kernel_op_144)) + tmp_kernel_op_35*((tmp_kernel_op_146*tmp_kernel_op_146) + (tmp_kernel_op_147*tmp_kernel_op_147)) + tmp_kernel_op_5*((tmp_kernel_op_131*tmp_kernel_op_131) + (tmp_kernel_op_132*tmp_kernel_op_132))) + src_dof_6*tmp_kernel_op_208;
+                const real_t elMatVec_6 = src_dof_0*tmp_kernel_op_177 + src_dof_1*tmp_kernel_op_190 + src_dof_2*tmp_kernel_op_202 + src_dof_3*tmp_kernel_op_205 + src_dof_4*tmp_kernel_op_207 + src_dof_5*tmp_kernel_op_208 + src_dof_6*(tmp_kernel_op_11*((tmp_kernel_op_159*tmp_kernel_op_159) + (tmp_kernel_op_160*tmp_kernel_op_160)) + tmp_kernel_op_17*((tmp_kernel_op_163*tmp_kernel_op_163) + (tmp_kernel_op_164*tmp_kernel_op_164)) + tmp_kernel_op_23*((tmp_kernel_op_167*tmp_kernel_op_167) + (tmp_kernel_op_168*tmp_kernel_op_168)) + tmp_kernel_op_29*((tmp_kernel_op_171*tmp_kernel_op_171) + (tmp_kernel_op_172*tmp_kernel_op_172)) + tmp_kernel_op_35*((tmp_kernel_op_175*tmp_kernel_op_175) + (tmp_kernel_op_176*tmp_kernel_op_176)) + tmp_kernel_op_5*((tmp_kernel_op_153*tmp_kernel_op_153) + (tmp_kernel_op_156*tmp_kernel_op_156)));
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_6 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   }
+                }
+             }
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp b/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b4970e18d6d0e645e852f6493e17999aac70ec92
--- /dev/null
+++ b/operators/diffusion/avx/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
@@ -0,0 +1,420 @@
+/*
+* 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 "../P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2PlusBubbleElementwiseDiffusion::computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D( real_t * RESTRICT  _data_invDiag_, real_t * RESTRICT  _data_invDiag_Edge, real_t * RESTRICT  _data_invDiag_Vertex, 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 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 = jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE;
+       const real_t tmp_coords_jac_6_BLUE = 1.0 / (tmp_coords_jac_5_BLUE);
+       const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t abs_det_jac_affine_BLUE = abs(tmp_coords_jac_5_BLUE);
+       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 = jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY;
+       const real_t tmp_coords_jac_2_GRAY = 1.0 / (tmp_coords_jac_1_GRAY);
+       const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t abs_det_jac_affine_GRAY = abs(tmp_coords_jac_1_GRAY);
+       const real_t tmp_kernel_op_0 = 1.7837939636638596;
+       const real_t tmp_kernel_op_1 = 0.43241207267228088;
+       const real_t tmp_kernel_op_2 = tmp_kernel_op_0 + tmp_kernel_op_1 - 3.0;
+       const real_t tmp_kernel_op_3 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_4 = 0.36630485403908286;
+       const real_t tmp_kernel_op_5 = 3.2673902919218341;
+       const real_t tmp_kernel_op_6 = tmp_kernel_op_4 + tmp_kernel_op_5 - 3.0;
+       const real_t tmp_kernel_op_7 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_8 = 0.43241207267228088;
+       const real_t tmp_kernel_op_9 = 1.7837939636638596;
+       const real_t tmp_kernel_op_10 = tmp_kernel_op_8 + tmp_kernel_op_9 - 3.0;
+       const real_t tmp_kernel_op_11 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_12 = 3.2673902919218341;
+       const real_t tmp_kernel_op_13 = 0.36630485403908286;
+       const real_t tmp_kernel_op_14 = tmp_kernel_op_12 + tmp_kernel_op_13 - 3.0;
+       const real_t tmp_kernel_op_15 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_16 = 1.7837939636638596;
+       const real_t tmp_kernel_op_17 = 1.7837939636638596;
+       const real_t tmp_kernel_op_18 = tmp_kernel_op_16 + tmp_kernel_op_17 - 3.0;
+       const real_t tmp_kernel_op_19 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_20 = 0.36630485403908286;
+       const real_t tmp_kernel_op_21 = 0.36630485403908286;
+       const real_t tmp_kernel_op_22 = tmp_kernel_op_20 + tmp_kernel_op_21 - 3.0;
+       const real_t tmp_kernel_op_23 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_24 = (jac_affine_inv_0_0_GRAY*jac_affine_inv_0_0_GRAY);
+       const real_t tmp_kernel_op_25 = ((tmp_kernel_op_0 - 1.0)*(tmp_kernel_op_0 - 1.0));
+       const real_t tmp_kernel_op_26 = (jac_affine_inv_0_1_GRAY*jac_affine_inv_0_1_GRAY);
+       const real_t tmp_kernel_op_27 = ((tmp_kernel_op_4 - 1.0)*(tmp_kernel_op_4 - 1.0));
+       const real_t tmp_kernel_op_28 = ((tmp_kernel_op_8 - 1.0)*(tmp_kernel_op_8 - 1.0));
+       const real_t tmp_kernel_op_29 = ((tmp_kernel_op_12 - 1.0)*(tmp_kernel_op_12 - 1.0));
+       const real_t tmp_kernel_op_30 = ((tmp_kernel_op_16 - 1.0)*(tmp_kernel_op_16 - 1.0));
+       const real_t tmp_kernel_op_31 = ((tmp_kernel_op_20 - 1.0)*(tmp_kernel_op_20 - 1.0));
+       const real_t tmp_kernel_op_32 = (jac_affine_inv_1_0_GRAY*jac_affine_inv_1_0_GRAY);
+       const real_t tmp_kernel_op_33 = ((tmp_kernel_op_1 - 1.0)*(tmp_kernel_op_1 - 1.0));
+       const real_t tmp_kernel_op_34 = (jac_affine_inv_1_1_GRAY*jac_affine_inv_1_1_GRAY);
+       const real_t tmp_kernel_op_35 = ((tmp_kernel_op_5 - 1.0)*(tmp_kernel_op_5 - 1.0));
+       const real_t tmp_kernel_op_36 = ((tmp_kernel_op_9 - 1.0)*(tmp_kernel_op_9 - 1.0));
+       const real_t tmp_kernel_op_37 = ((tmp_kernel_op_13 - 1.0)*(tmp_kernel_op_13 - 1.0));
+       const real_t tmp_kernel_op_38 = ((tmp_kernel_op_17 - 1.0)*(tmp_kernel_op_17 - 1.0));
+       const real_t tmp_kernel_op_39 = ((tmp_kernel_op_21 - 1.0)*(tmp_kernel_op_21 - 1.0));
+       const real_t tmp_kernel_op_40 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_41 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_42 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_43 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_44 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_5;
+       const real_t tmp_kernel_op_45 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_4;
+       const real_t tmp_kernel_op_46 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_5;
+       const real_t tmp_kernel_op_47 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_4;
+       const real_t tmp_kernel_op_48 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_9;
+       const real_t tmp_kernel_op_49 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_50 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_9;
+       const real_t tmp_kernel_op_51 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_52 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_53 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_54 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_55 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_56 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_17;
+       const real_t tmp_kernel_op_57 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_16;
+       const real_t tmp_kernel_op_58 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_17;
+       const real_t tmp_kernel_op_59 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_16;
+       const real_t tmp_kernel_op_60 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_21;
+       const real_t tmp_kernel_op_61 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_62 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_21;
+       const real_t tmp_kernel_op_63 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_64 = -tmp_kernel_op_0 + 3.1351758546554382;
+       const real_t tmp_kernel_op_65 = -tmp_kernel_op_4 - 2.5347805838436681;
+       const real_t tmp_kernel_op_66 = -tmp_kernel_op_8 + 0.43241207267228088;
+       const real_t tmp_kernel_op_67 = -tmp_kernel_op_12 + 3.2673902919218341;
+       const real_t tmp_kernel_op_68 = -tmp_kernel_op_16 + 0.43241207267228088;
+       const real_t tmp_kernel_op_69 = -tmp_kernel_op_20 + 3.2673902919218341;
+       const real_t tmp_kernel_op_70 = -tmp_kernel_op_1 + 0.43241207267228088;
+       const real_t tmp_kernel_op_71 = -tmp_kernel_op_5 + 3.2673902919218341;
+       const real_t tmp_kernel_op_72 = -tmp_kernel_op_9 + 3.1351758546554382;
+       const real_t tmp_kernel_op_73 = -tmp_kernel_op_13 - 2.5347805838436681;
+       const real_t tmp_kernel_op_74 = -tmp_kernel_op_17 + 0.43241207267228088;
+       const real_t tmp_kernel_op_75 = -tmp_kernel_op_21 + 3.2673902919218341;
+       const real_t tmp_kernel_op_76 = jac_affine_inv_0_0_GRAY*27.0;
+       const int64_t tmp_kernel_op_77 = 0;
+       const real_t tmp_kernel_op_78 = jac_affine_inv_1_0_GRAY*27.0;
+       const real_t tmp_kernel_op_79 = 0.15066167873471437;
+       const real_t tmp_kernel_op_80 = jac_affine_inv_0_1_GRAY*27.0;
+       const real_t tmp_kernel_op_81 = jac_affine_inv_1_1_GRAY*27.0;
+       const real_t tmp_kernel_op_82 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_83 = -0.066417604867409372;
+       const real_t tmp_kernel_op_84 = 0.15066167873471437;
+       const int64_t tmp_kernel_op_85 = 0;
+       const real_t tmp_kernel_op_86 = -0.066417604867409372;
+       const real_t tmp_kernel_op_87 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_88 = -0.15066167873471437;
+       const real_t tmp_kernel_op_89 = -0.15066167873471437;
+       const real_t tmp_kernel_op_90 = 0.066417604867409386;
+       const real_t tmp_kernel_op_91 = 0.066417604867409386;
+       const real_t elMatDiag_0 = tmp_kernel_op_11*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_10)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_10)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_10)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_10))) + tmp_kernel_op_15*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14))) + tmp_kernel_op_19*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_18)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_18)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_18)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_18))) + tmp_kernel_op_23*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_22)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_22)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_22)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_22))) + tmp_kernel_op_3*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2))) + tmp_kernel_op_7*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_6)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_6)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_6)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_6)));
+       const real_t elMatDiag_1 = tmp_kernel_op_11*(tmp_kernel_op_24*tmp_kernel_op_28 + tmp_kernel_op_26*tmp_kernel_op_28) + tmp_kernel_op_15*(tmp_kernel_op_24*tmp_kernel_op_29 + tmp_kernel_op_26*tmp_kernel_op_29) + tmp_kernel_op_19*(tmp_kernel_op_24*tmp_kernel_op_30 + tmp_kernel_op_26*tmp_kernel_op_30) + tmp_kernel_op_23*(tmp_kernel_op_24*tmp_kernel_op_31 + tmp_kernel_op_26*tmp_kernel_op_31) + tmp_kernel_op_3*(tmp_kernel_op_24*tmp_kernel_op_25 + tmp_kernel_op_25*tmp_kernel_op_26) + tmp_kernel_op_7*(tmp_kernel_op_24*tmp_kernel_op_27 + tmp_kernel_op_26*tmp_kernel_op_27);
+       const real_t elMatDiag_2 = tmp_kernel_op_11*(tmp_kernel_op_32*tmp_kernel_op_36 + tmp_kernel_op_34*tmp_kernel_op_36) + tmp_kernel_op_15*(tmp_kernel_op_32*tmp_kernel_op_37 + tmp_kernel_op_34*tmp_kernel_op_37) + tmp_kernel_op_19*(tmp_kernel_op_32*tmp_kernel_op_38 + tmp_kernel_op_34*tmp_kernel_op_38) + tmp_kernel_op_23*(tmp_kernel_op_32*tmp_kernel_op_39 + tmp_kernel_op_34*tmp_kernel_op_39) + tmp_kernel_op_3*(tmp_kernel_op_32*tmp_kernel_op_33 + tmp_kernel_op_33*tmp_kernel_op_34) + tmp_kernel_op_7*(tmp_kernel_op_32*tmp_kernel_op_35 + tmp_kernel_op_34*tmp_kernel_op_35);
+       const real_t elMatDiag_3 = tmp_kernel_op_11*(((tmp_kernel_op_48 + tmp_kernel_op_49)*(tmp_kernel_op_48 + tmp_kernel_op_49)) + ((tmp_kernel_op_50 + tmp_kernel_op_51)*(tmp_kernel_op_50 + tmp_kernel_op_51))) + tmp_kernel_op_15*(((tmp_kernel_op_52 + tmp_kernel_op_53)*(tmp_kernel_op_52 + tmp_kernel_op_53)) + ((tmp_kernel_op_54 + tmp_kernel_op_55)*(tmp_kernel_op_54 + tmp_kernel_op_55))) + tmp_kernel_op_19*(((tmp_kernel_op_56 + tmp_kernel_op_57)*(tmp_kernel_op_56 + tmp_kernel_op_57)) + ((tmp_kernel_op_58 + tmp_kernel_op_59)*(tmp_kernel_op_58 + tmp_kernel_op_59))) + tmp_kernel_op_23*(((tmp_kernel_op_60 + tmp_kernel_op_61)*(tmp_kernel_op_60 + tmp_kernel_op_61)) + ((tmp_kernel_op_62 + tmp_kernel_op_63)*(tmp_kernel_op_62 + tmp_kernel_op_63))) + tmp_kernel_op_3*(((tmp_kernel_op_40 + tmp_kernel_op_41)*(tmp_kernel_op_40 + tmp_kernel_op_41)) + ((tmp_kernel_op_42 + tmp_kernel_op_43)*(tmp_kernel_op_42 + tmp_kernel_op_43))) + tmp_kernel_op_7*(((tmp_kernel_op_44 + tmp_kernel_op_45)*(tmp_kernel_op_44 + tmp_kernel_op_45)) + ((tmp_kernel_op_46 + tmp_kernel_op_47)*(tmp_kernel_op_46 + tmp_kernel_op_47)));
+       const real_t elMatDiag_4 = tmp_kernel_op_11*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_66 - tmp_kernel_op_48)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_66 - tmp_kernel_op_48)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_66 - tmp_kernel_op_50)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_66 - tmp_kernel_op_50))) + tmp_kernel_op_15*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_67 - tmp_kernel_op_52)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_67 - tmp_kernel_op_52)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_67 - tmp_kernel_op_54)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_67 - tmp_kernel_op_54))) + tmp_kernel_op_19*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_68 - tmp_kernel_op_56)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_68 - tmp_kernel_op_56)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_68 - tmp_kernel_op_58)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_68 - tmp_kernel_op_58))) + tmp_kernel_op_23*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_69 - tmp_kernel_op_60)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_69 - tmp_kernel_op_60)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_69 - tmp_kernel_op_62)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_69 - tmp_kernel_op_62))) + tmp_kernel_op_3*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_64 - tmp_kernel_op_40)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_64 - tmp_kernel_op_40)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_64 - tmp_kernel_op_42)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_64 - tmp_kernel_op_42))) + tmp_kernel_op_7*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_65 - tmp_kernel_op_44)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_65 - tmp_kernel_op_44)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_65 - tmp_kernel_op_46)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_65 - tmp_kernel_op_46)));
+       const real_t elMatDiag_5 = tmp_kernel_op_11*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_72 - tmp_kernel_op_49)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_72 - tmp_kernel_op_49)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_72 - tmp_kernel_op_51)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_72 - tmp_kernel_op_51))) + tmp_kernel_op_15*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_73 - tmp_kernel_op_53)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_73 - tmp_kernel_op_53)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_73 - tmp_kernel_op_55)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_73 - tmp_kernel_op_55))) + tmp_kernel_op_19*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_74 - tmp_kernel_op_57)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_74 - tmp_kernel_op_57)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_74 - tmp_kernel_op_59)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_74 - tmp_kernel_op_59))) + tmp_kernel_op_23*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_75 - tmp_kernel_op_61)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_75 - tmp_kernel_op_61)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_75 - tmp_kernel_op_63)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_75 - tmp_kernel_op_63))) + tmp_kernel_op_3*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_70 - tmp_kernel_op_41)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_70 - tmp_kernel_op_41)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_70 - tmp_kernel_op_43)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_70 - tmp_kernel_op_43))) + tmp_kernel_op_7*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_71 - tmp_kernel_op_45)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_71 - tmp_kernel_op_45)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_71 - tmp_kernel_op_47)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_71 - tmp_kernel_op_47)));
+       const real_t elMatDiag_6 = tmp_kernel_op_11*(((tmp_kernel_op_76*tmp_kernel_op_84 + tmp_kernel_op_78*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_76*tmp_kernel_op_84 + tmp_kernel_op_78*((real_t)(tmp_kernel_op_85)))) + ((tmp_kernel_op_80*tmp_kernel_op_84 + tmp_kernel_op_81*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_80*tmp_kernel_op_84 + tmp_kernel_op_81*((real_t)(tmp_kernel_op_85))))) + tmp_kernel_op_15*(((tmp_kernel_op_76*tmp_kernel_op_86 + tmp_kernel_op_78*tmp_kernel_op_87)*(tmp_kernel_op_76*tmp_kernel_op_86 + tmp_kernel_op_78*tmp_kernel_op_87)) + ((tmp_kernel_op_80*tmp_kernel_op_86 + tmp_kernel_op_81*tmp_kernel_op_87)*(tmp_kernel_op_80*tmp_kernel_op_86 + tmp_kernel_op_81*tmp_kernel_op_87))) + tmp_kernel_op_19*(((tmp_kernel_op_76*tmp_kernel_op_88 + tmp_kernel_op_78*tmp_kernel_op_89)*(tmp_kernel_op_76*tmp_kernel_op_88 + tmp_kernel_op_78*tmp_kernel_op_89)) + ((tmp_kernel_op_80*tmp_kernel_op_88 + tmp_kernel_op_81*tmp_kernel_op_89)*(tmp_kernel_op_80*tmp_kernel_op_88 + tmp_kernel_op_81*tmp_kernel_op_89))) + tmp_kernel_op_23*(((tmp_kernel_op_76*tmp_kernel_op_90 + tmp_kernel_op_78*tmp_kernel_op_91)*(tmp_kernel_op_76*tmp_kernel_op_90 + tmp_kernel_op_78*tmp_kernel_op_91)) + ((tmp_kernel_op_80*tmp_kernel_op_90 + tmp_kernel_op_81*tmp_kernel_op_91)*(tmp_kernel_op_80*tmp_kernel_op_90 + tmp_kernel_op_81*tmp_kernel_op_91))) + tmp_kernel_op_3*(((tmp_kernel_op_76*((real_t)(tmp_kernel_op_77)) + tmp_kernel_op_78*tmp_kernel_op_79)*(tmp_kernel_op_76*((real_t)(tmp_kernel_op_77)) + tmp_kernel_op_78*tmp_kernel_op_79)) + ((tmp_kernel_op_79*tmp_kernel_op_81 + tmp_kernel_op_80*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_kernel_op_81 + tmp_kernel_op_80*((real_t)(tmp_kernel_op_77))))) + tmp_kernel_op_7*(((tmp_kernel_op_76*tmp_kernel_op_82 + tmp_kernel_op_78*tmp_kernel_op_83)*(tmp_kernel_op_76*tmp_kernel_op_82 + tmp_kernel_op_78*tmp_kernel_op_83)) + ((tmp_kernel_op_80*tmp_kernel_op_82 + tmp_kernel_op_81*tmp_kernel_op_83)*(tmp_kernel_op_80*tmp_kernel_op_82 + tmp_kernel_op_81*tmp_kernel_op_83)));
+       const real_t tmp_moved_constant_0 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_1 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_2 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_3 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_4 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_5 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_6 = (jac_affine_inv_0_0_BLUE*jac_affine_inv_0_0_BLUE);
+       const real_t tmp_moved_constant_7 = (jac_affine_inv_0_1_BLUE*jac_affine_inv_0_1_BLUE);
+       const real_t tmp_moved_constant_8 = (jac_affine_inv_1_0_BLUE*jac_affine_inv_1_0_BLUE);
+       const real_t tmp_moved_constant_9 = (jac_affine_inv_1_1_BLUE*jac_affine_inv_1_1_BLUE);
+       const real_t tmp_moved_constant_10 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_11 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_12 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_13 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_14 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_5;
+       const real_t tmp_moved_constant_15 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_4;
+       const real_t tmp_moved_constant_16 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_5;
+       const real_t tmp_moved_constant_17 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_4;
+       const real_t tmp_moved_constant_18 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_9;
+       const real_t tmp_moved_constant_19 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_20 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_9;
+       const real_t tmp_moved_constant_21 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_22 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_23 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_24 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_25 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_26 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_17;
+       const real_t tmp_moved_constant_27 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_16;
+       const real_t tmp_moved_constant_28 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_17;
+       const real_t tmp_moved_constant_29 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_16;
+       const real_t tmp_moved_constant_30 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_21;
+       const real_t tmp_moved_constant_31 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_32 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_21;
+       const real_t tmp_moved_constant_33 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_34 = jac_affine_inv_0_0_BLUE*27.0;
+       const real_t tmp_moved_constant_35 = jac_affine_inv_1_0_BLUE*27.0;
+       const real_t tmp_moved_constant_36 = jac_affine_inv_0_1_BLUE*27.0;
+       const real_t tmp_moved_constant_37 = jac_affine_inv_1_1_BLUE*27.0;
+       const real_t tmp_moved_constant_38 = tmp_moved_constant_0*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2))) + tmp_moved_constant_1*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_6)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_6)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_6)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_6))) + tmp_moved_constant_2*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_10)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_10)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_10)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_10))) + tmp_moved_constant_3*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14))) + tmp_moved_constant_4*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_18)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_18)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_18)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_18))) + tmp_moved_constant_5*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_22)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_22)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_22)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_22)));
+       const real_t tmp_moved_constant_39 = tmp_moved_constant_0*(tmp_kernel_op_25*tmp_moved_constant_6 + tmp_kernel_op_25*tmp_moved_constant_7) + tmp_moved_constant_1*(tmp_kernel_op_27*tmp_moved_constant_6 + tmp_kernel_op_27*tmp_moved_constant_7) + tmp_moved_constant_2*(tmp_kernel_op_28*tmp_moved_constant_6 + tmp_kernel_op_28*tmp_moved_constant_7) + tmp_moved_constant_3*(tmp_kernel_op_29*tmp_moved_constant_6 + tmp_kernel_op_29*tmp_moved_constant_7) + tmp_moved_constant_4*(tmp_kernel_op_30*tmp_moved_constant_6 + tmp_kernel_op_30*tmp_moved_constant_7) + tmp_moved_constant_5*(tmp_kernel_op_31*tmp_moved_constant_6 + tmp_kernel_op_31*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_40 = tmp_moved_constant_0*(tmp_kernel_op_33*tmp_moved_constant_8 + tmp_kernel_op_33*tmp_moved_constant_9) + tmp_moved_constant_1*(tmp_kernel_op_35*tmp_moved_constant_8 + tmp_kernel_op_35*tmp_moved_constant_9) + tmp_moved_constant_2*(tmp_kernel_op_36*tmp_moved_constant_8 + tmp_kernel_op_36*tmp_moved_constant_9) + tmp_moved_constant_3*(tmp_kernel_op_37*tmp_moved_constant_8 + tmp_kernel_op_37*tmp_moved_constant_9) + tmp_moved_constant_4*(tmp_kernel_op_38*tmp_moved_constant_8 + tmp_kernel_op_38*tmp_moved_constant_9) + tmp_moved_constant_5*(tmp_kernel_op_39*tmp_moved_constant_8 + tmp_kernel_op_39*tmp_moved_constant_9);
+       const real_t tmp_moved_constant_41 = tmp_moved_constant_0*(((tmp_moved_constant_10 + tmp_moved_constant_11)*(tmp_moved_constant_10 + tmp_moved_constant_11)) + ((tmp_moved_constant_12 + tmp_moved_constant_13)*(tmp_moved_constant_12 + tmp_moved_constant_13))) + tmp_moved_constant_1*(((tmp_moved_constant_14 + tmp_moved_constant_15)*(tmp_moved_constant_14 + tmp_moved_constant_15)) + ((tmp_moved_constant_16 + tmp_moved_constant_17)*(tmp_moved_constant_16 + tmp_moved_constant_17))) + tmp_moved_constant_2*(((tmp_moved_constant_18 + tmp_moved_constant_19)*(tmp_moved_constant_18 + tmp_moved_constant_19)) + ((tmp_moved_constant_20 + tmp_moved_constant_21)*(tmp_moved_constant_20 + tmp_moved_constant_21))) + tmp_moved_constant_3*(((tmp_moved_constant_22 + tmp_moved_constant_23)*(tmp_moved_constant_22 + tmp_moved_constant_23)) + ((tmp_moved_constant_24 + tmp_moved_constant_25)*(tmp_moved_constant_24 + tmp_moved_constant_25))) + tmp_moved_constant_4*(((tmp_moved_constant_26 + tmp_moved_constant_27)*(tmp_moved_constant_26 + tmp_moved_constant_27)) + ((tmp_moved_constant_28 + tmp_moved_constant_29)*(tmp_moved_constant_28 + tmp_moved_constant_29))) + tmp_moved_constant_5*(((tmp_moved_constant_30 + tmp_moved_constant_31)*(tmp_moved_constant_30 + tmp_moved_constant_31)) + ((tmp_moved_constant_32 + tmp_moved_constant_33)*(tmp_moved_constant_32 + tmp_moved_constant_33)));
+       const real_t tmp_moved_constant_42 = tmp_moved_constant_0*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_64 - tmp_moved_constant_10)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_64 - tmp_moved_constant_10)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_64 - tmp_moved_constant_12)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_64 - tmp_moved_constant_12))) + tmp_moved_constant_1*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_65 - tmp_moved_constant_14)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_65 - tmp_moved_constant_14)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_65 - tmp_moved_constant_16)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_65 - tmp_moved_constant_16))) + tmp_moved_constant_2*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_66 - tmp_moved_constant_18)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_66 - tmp_moved_constant_18)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_66 - tmp_moved_constant_20)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_66 - tmp_moved_constant_20))) + tmp_moved_constant_3*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_67 - tmp_moved_constant_22)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_67 - tmp_moved_constant_22)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_67 - tmp_moved_constant_24)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_67 - tmp_moved_constant_24))) + tmp_moved_constant_4*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_68 - tmp_moved_constant_26)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_68 - tmp_moved_constant_26)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_68 - tmp_moved_constant_28)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_68 - tmp_moved_constant_28))) + tmp_moved_constant_5*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_69 - tmp_moved_constant_30)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_69 - tmp_moved_constant_30)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_69 - tmp_moved_constant_32)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_69 - tmp_moved_constant_32)));
+       const real_t tmp_moved_constant_43 = tmp_moved_constant_0*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_70 - tmp_moved_constant_11)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_70 - tmp_moved_constant_11)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_70 - tmp_moved_constant_13)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_70 - tmp_moved_constant_13))) + tmp_moved_constant_1*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_71 - tmp_moved_constant_15)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_71 - tmp_moved_constant_15)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_71 - tmp_moved_constant_17)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_71 - tmp_moved_constant_17))) + tmp_moved_constant_2*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_72 - tmp_moved_constant_19)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_72 - tmp_moved_constant_19)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_72 - tmp_moved_constant_21)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_72 - tmp_moved_constant_21))) + tmp_moved_constant_3*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_73 - tmp_moved_constant_23)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_73 - tmp_moved_constant_23)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_73 - tmp_moved_constant_25)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_73 - tmp_moved_constant_25))) + tmp_moved_constant_4*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_74 - tmp_moved_constant_27)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_74 - tmp_moved_constant_27)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_74 - tmp_moved_constant_29)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_74 - tmp_moved_constant_29))) + tmp_moved_constant_5*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_75 - tmp_moved_constant_31)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_75 - tmp_moved_constant_31)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_75 - tmp_moved_constant_33)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_75 - tmp_moved_constant_33)));
+       const real_t tmp_moved_constant_44 = tmp_moved_constant_0*(((tmp_kernel_op_79*tmp_moved_constant_35 + tmp_moved_constant_34*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_moved_constant_35 + tmp_moved_constant_34*((real_t)(tmp_kernel_op_77)))) + ((tmp_kernel_op_79*tmp_moved_constant_37 + tmp_moved_constant_36*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_moved_constant_37 + tmp_moved_constant_36*((real_t)(tmp_kernel_op_77))))) + tmp_moved_constant_1*(((tmp_kernel_op_82*tmp_moved_constant_34 + tmp_kernel_op_83*tmp_moved_constant_35)*(tmp_kernel_op_82*tmp_moved_constant_34 + tmp_kernel_op_83*tmp_moved_constant_35)) + ((tmp_kernel_op_82*tmp_moved_constant_36 + tmp_kernel_op_83*tmp_moved_constant_37)*(tmp_kernel_op_82*tmp_moved_constant_36 + tmp_kernel_op_83*tmp_moved_constant_37))) + tmp_moved_constant_2*(((tmp_kernel_op_84*tmp_moved_constant_34 + tmp_moved_constant_35*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_84*tmp_moved_constant_34 + tmp_moved_constant_35*((real_t)(tmp_kernel_op_85)))) + ((tmp_kernel_op_84*tmp_moved_constant_36 + tmp_moved_constant_37*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_84*tmp_moved_constant_36 + tmp_moved_constant_37*((real_t)(tmp_kernel_op_85))))) + tmp_moved_constant_3*(((tmp_kernel_op_86*tmp_moved_constant_34 + tmp_kernel_op_87*tmp_moved_constant_35)*(tmp_kernel_op_86*tmp_moved_constant_34 + tmp_kernel_op_87*tmp_moved_constant_35)) + ((tmp_kernel_op_86*tmp_moved_constant_36 + tmp_kernel_op_87*tmp_moved_constant_37)*(tmp_kernel_op_86*tmp_moved_constant_36 + tmp_kernel_op_87*tmp_moved_constant_37))) + tmp_moved_constant_4*(((tmp_kernel_op_88*tmp_moved_constant_34 + tmp_kernel_op_89*tmp_moved_constant_35)*(tmp_kernel_op_88*tmp_moved_constant_34 + tmp_kernel_op_89*tmp_moved_constant_35)) + ((tmp_kernel_op_88*tmp_moved_constant_36 + tmp_kernel_op_89*tmp_moved_constant_37)*(tmp_kernel_op_88*tmp_moved_constant_36 + tmp_kernel_op_89*tmp_moved_constant_37))) + tmp_moved_constant_5*(((tmp_kernel_op_90*tmp_moved_constant_34 + tmp_kernel_op_91*tmp_moved_constant_35)*(tmp_kernel_op_90*tmp_moved_constant_34 + tmp_kernel_op_91*tmp_moved_constant_35)) + ((tmp_kernel_op_90*tmp_moved_constant_36 + tmp_kernel_op_91*tmp_moved_constant_37)*(tmp_kernel_op_90*tmp_moved_constant_36 + tmp_kernel_op_91*tmp_moved_constant_37)));
+       for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1)
+       {
+          {
+             for (int64_t ctr_0 = 0; ctr_0 < (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 += 4)
+             {
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_1;
+                  
+                      const __m256d p_affine_0_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_0_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_1_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_1_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_2_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_2_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_0,elMatDiag_0,elMatDiag_0,elMatDiag_0),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(_mm256_set_pd(elMatDiag_1,elMatDiag_1,elMatDiag_1,elMatDiag_1),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_2,elMatDiag_2,elMatDiag_2,elMatDiag_2),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_3,elMatDiag_3,elMatDiag_3,elMatDiag_3),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_4,elMatDiag_4,elMatDiag_4,elMatDiag_4),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_5,elMatDiag_5,elMatDiag_5,elMatDiag_5),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(elMatDiag_6,elMatDiag_6,elMatDiag_6,elMatDiag_6),_mm256_loadu_pd(& _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])));
+                   }
+                }
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_1;
+                  
+                      const __m256d p_affine_0_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_0_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_1_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_1_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      const __m256d p_affine_2_0 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0,macro_vertex_coord_id_1comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0)),_mm256_set_pd(macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0,macro_vertex_coord_id_2comp0)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0,macro_vertex_coord_id_0comp0));
+                      const __m256d p_affine_2_1 = _mm256_add_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1,macro_vertex_coord_id_1comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float))),_mm256_mul_pd(_mm256_mul_pd(_mm256_mul_pd(_mm256_add_pd(_mm256_mul_pd(_mm256_set_pd(-1.0,-1.0,-1.0,-1.0),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1)),_mm256_set_pd(macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1,macro_vertex_coord_id_2comp1)),_mm256_add_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_loadu_pd(& _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0]))),_mm256_set_pd(1.0,1.0,1.0,1.0)),_mm256_div_pd(_mm256_set_pd(1.0,1.0,1.0,1.0),_mm256_set_pd(micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float,micro_edges_per_macro_edge_float)))),_mm256_set_pd(macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1,macro_vertex_coord_id_0comp1));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_38,tmp_moved_constant_38,tmp_moved_constant_38,tmp_moved_constant_38),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_39,tmp_moved_constant_39,tmp_moved_constant_39,tmp_moved_constant_39),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_40,tmp_moved_constant_40,tmp_moved_constant_40,tmp_moved_constant_40),_mm256_loadu_pd(& _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_41,tmp_moved_constant_41,tmp_moved_constant_41,tmp_moved_constant_41),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_42,tmp_moved_constant_42,tmp_moved_constant_42,tmp_moved_constant_42),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])));
+                      _mm256_storeu_pd(&_data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_43,tmp_moved_constant_43,tmp_moved_constant_43,tmp_moved_constant_43),_mm256_loadu_pd(& _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                      _mm256_storeu_pd(&_data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))],_mm256_add_pd(_mm256_set_pd(tmp_moved_constant_44,tmp_moved_constant_44,tmp_moved_constant_44,tmp_moved_constant_44),_mm256_loadu_pd(& _data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])));
+                   }
+                }
+             }
+             for (int64_t ctr_0 = (int64_t)((-ctr_1 + micro_edges_per_macro_edge - 1) / (4)) * (4); ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1)
+             {
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_6 + _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   }
+                }
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = tmp_moved_constant_38 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_39 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = tmp_moved_constant_40 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                      _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_41 + _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = tmp_moved_constant_42 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_43 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_44 + _data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   }
+                }
+             }
+          }
+          {
+             for (int64_t ctr_0 = -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
+             {
+                {
+                   {
+                  
+                      const int64_t phantom_ctr_0 = ctr_0;
+                      real_t _data_float_loop_ctr_array_dim_0[4];
+                      _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                      _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                      _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                      _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                      real_t _data_float_loop_ctr_array_dim_1[4];
+                      _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                      _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                      _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                      _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                      _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                      _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_6 + _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   }
+                }
+             }
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..652e92a950c85597dc14b89d861e26f3f7a325a0
--- /dev/null
+++ b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_apply_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
@@ -0,0 +1,603 @@
+/*
+* 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 "../P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2PlusBubbleElementwiseDiffusion::apply_P2PlusBubbleElementwiseDiffusion_macro_2D( real_t * RESTRICT  _data_dst, real_t * RESTRICT  _data_dstEdge, real_t * RESTRICT  _data_dstVertex, real_t * RESTRICT  _data_src, real_t * RESTRICT  _data_srcEdge, real_t * RESTRICT  _data_srcVertex, 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 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 = jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE;
+       const real_t tmp_coords_jac_6_BLUE = 1.0 / (tmp_coords_jac_5_BLUE);
+       const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t abs_det_jac_affine_BLUE = abs(tmp_coords_jac_5_BLUE);
+       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 = jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY;
+       const real_t tmp_coords_jac_2_GRAY = 1.0 / (tmp_coords_jac_1_GRAY);
+       const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t abs_det_jac_affine_GRAY = abs(tmp_coords_jac_1_GRAY);
+       const real_t tmp_kernel_op_0 = 1.7837939636638596;
+       const real_t tmp_kernel_op_1 = 0.43241207267228088;
+       const real_t tmp_kernel_op_2 = tmp_kernel_op_0 + tmp_kernel_op_1 - 3.0;
+       const real_t tmp_kernel_op_3 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_4 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_5 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_6 = 0.36630485403908286;
+       const real_t tmp_kernel_op_7 = 3.2673902919218341;
+       const real_t tmp_kernel_op_8 = tmp_kernel_op_6 + tmp_kernel_op_7 - 3.0;
+       const real_t tmp_kernel_op_9 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_10 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_11 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_12 = 0.43241207267228088;
+       const real_t tmp_kernel_op_13 = 1.7837939636638596;
+       const real_t tmp_kernel_op_14 = tmp_kernel_op_12 + tmp_kernel_op_13 - 3.0;
+       const real_t tmp_kernel_op_15 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_16 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_17 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_18 = 3.2673902919218341;
+       const real_t tmp_kernel_op_19 = 0.36630485403908286;
+       const real_t tmp_kernel_op_20 = tmp_kernel_op_18 + tmp_kernel_op_19 - 3.0;
+       const real_t tmp_kernel_op_21 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_22 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_23 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_24 = 1.7837939636638596;
+       const real_t tmp_kernel_op_25 = 1.7837939636638596;
+       const real_t tmp_kernel_op_26 = tmp_kernel_op_24 + tmp_kernel_op_25 - 3.0;
+       const real_t tmp_kernel_op_27 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_28 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_29 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_30 = 0.36630485403908286;
+       const real_t tmp_kernel_op_31 = 0.36630485403908286;
+       const real_t tmp_kernel_op_32 = tmp_kernel_op_30 + tmp_kernel_op_31 - 3.0;
+       const real_t tmp_kernel_op_33 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_34 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_35 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_36 = tmp_kernel_op_0 - 1.0;
+       const real_t tmp_kernel_op_37 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_38 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_39 = tmp_kernel_op_6 - 1.0;
+       const real_t tmp_kernel_op_40 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_41 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_42 = tmp_kernel_op_12 - 1.0;
+       const real_t tmp_kernel_op_43 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_44 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_45 = tmp_kernel_op_18 - 1.0;
+       const real_t tmp_kernel_op_46 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_47 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_48 = tmp_kernel_op_24 - 1.0;
+       const real_t tmp_kernel_op_49 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_50 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_51 = tmp_kernel_op_30 - 1.0;
+       const real_t tmp_kernel_op_52 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_53 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_54 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_41 + tmp_kernel_op_40*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_43 + tmp_kernel_op_16*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_46 + tmp_kernel_op_22*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_49 + tmp_kernel_op_28*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_52 + tmp_kernel_op_34*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_37 + tmp_kernel_op_38*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_55 = tmp_kernel_op_1 - 1.0;
+       const real_t tmp_kernel_op_56 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_57 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_58 = tmp_kernel_op_7 - 1.0;
+       const real_t tmp_kernel_op_59 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_60 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_61 = tmp_kernel_op_13 - 1.0;
+       const real_t tmp_kernel_op_62 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_63 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_64 = tmp_kernel_op_19 - 1.0;
+       const real_t tmp_kernel_op_65 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_66 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_67 = tmp_kernel_op_25 - 1.0;
+       const real_t tmp_kernel_op_68 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_69 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_70 = tmp_kernel_op_31 - 1.0;
+       const real_t tmp_kernel_op_71 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_72 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_73 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_60 + tmp_kernel_op_59*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_62 + tmp_kernel_op_16*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_65 + tmp_kernel_op_22*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_68 + tmp_kernel_op_28*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_71 + tmp_kernel_op_34*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_56 + tmp_kernel_op_4*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_74 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_75 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_76 = tmp_kernel_op_74 + tmp_kernel_op_75;
+       const real_t tmp_kernel_op_77 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_78 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_79 = tmp_kernel_op_77 + tmp_kernel_op_78;
+       const real_t tmp_kernel_op_80 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_81 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_82 = tmp_kernel_op_80 + tmp_kernel_op_81;
+       const real_t tmp_kernel_op_83 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_84 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_85 = tmp_kernel_op_83 + tmp_kernel_op_84;
+       const real_t tmp_kernel_op_86 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_87 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_88 = tmp_kernel_op_86 + tmp_kernel_op_87;
+       const real_t tmp_kernel_op_89 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_90 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_91 = tmp_kernel_op_89 + tmp_kernel_op_90;
+       const real_t tmp_kernel_op_92 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_93 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_94 = tmp_kernel_op_92 + tmp_kernel_op_93;
+       const real_t tmp_kernel_op_95 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_96 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_97 = tmp_kernel_op_95 + tmp_kernel_op_96;
+       const real_t tmp_kernel_op_98 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_99 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_100 = tmp_kernel_op_98 + tmp_kernel_op_99;
+       const real_t tmp_kernel_op_101 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_102 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_103 = tmp_kernel_op_101 + tmp_kernel_op_102;
+       const real_t tmp_kernel_op_104 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_105 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_106 = tmp_kernel_op_104 + tmp_kernel_op_105;
+       const real_t tmp_kernel_op_107 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_108 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_109 = tmp_kernel_op_107 + tmp_kernel_op_108;
+       const real_t tmp_kernel_op_110 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_85 + tmp_kernel_op_82*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_88 + tmp_kernel_op_16*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_94 + tmp_kernel_op_22*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_27 + tmp_kernel_op_103*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_33 + tmp_kernel_op_109*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_76 + tmp_kernel_op_4*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_111 = -tmp_kernel_op_0 + 3.1351758546554382;
+       const real_t tmp_kernel_op_112 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_111 - tmp_kernel_op_74;
+       const real_t tmp_kernel_op_113 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_111 - tmp_kernel_op_77;
+       const real_t tmp_kernel_op_114 = -tmp_kernel_op_6 - 2.5347805838436681;
+       const real_t tmp_kernel_op_115 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_114 - tmp_kernel_op_80;
+       const real_t tmp_kernel_op_116 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_114 - tmp_kernel_op_83;
+       const real_t tmp_kernel_op_117 = -tmp_kernel_op_12 + 0.43241207267228088;
+       const real_t tmp_kernel_op_118 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_117 - tmp_kernel_op_86;
+       const real_t tmp_kernel_op_119 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_117 - tmp_kernel_op_89;
+       const real_t tmp_kernel_op_120 = -tmp_kernel_op_18 + 3.2673902919218341;
+       const real_t tmp_kernel_op_121 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_120 - tmp_kernel_op_92;
+       const real_t tmp_kernel_op_122 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_120 - tmp_kernel_op_95;
+       const real_t tmp_kernel_op_123 = -tmp_kernel_op_24 + 0.43241207267228088;
+       const real_t tmp_kernel_op_124 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_123 - tmp_kernel_op_98;
+       const real_t tmp_kernel_op_125 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_123 - tmp_kernel_op_101;
+       const real_t tmp_kernel_op_126 = -tmp_kernel_op_30 + 3.2673902919218341;
+       const real_t tmp_kernel_op_127 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_126 - tmp_kernel_op_104;
+       const real_t tmp_kernel_op_128 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_126 - tmp_kernel_op_107;
+       const real_t tmp_kernel_op_129 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_116 + tmp_kernel_op_115*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_15 + tmp_kernel_op_119*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_21 + tmp_kernel_op_122*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_27 + tmp_kernel_op_125*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_33 + tmp_kernel_op_128*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_3 + tmp_kernel_op_113*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_130 = -tmp_kernel_op_1 + 0.43241207267228088;
+       const real_t tmp_kernel_op_131 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_130 - tmp_kernel_op_75;
+       const real_t tmp_kernel_op_132 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_130 - tmp_kernel_op_78;
+       const real_t tmp_kernel_op_133 = -tmp_kernel_op_7 + 3.2673902919218341;
+       const real_t tmp_kernel_op_134 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_133 - tmp_kernel_op_81;
+       const real_t tmp_kernel_op_135 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_133 - tmp_kernel_op_84;
+       const real_t tmp_kernel_op_136 = -tmp_kernel_op_13 + 3.1351758546554382;
+       const real_t tmp_kernel_op_137 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_136 - tmp_kernel_op_87;
+       const real_t tmp_kernel_op_138 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_136 - tmp_kernel_op_90;
+       const real_t tmp_kernel_op_139 = -tmp_kernel_op_19 - 2.5347805838436681;
+       const real_t tmp_kernel_op_140 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_139 - tmp_kernel_op_93;
+       const real_t tmp_kernel_op_141 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_139 - tmp_kernel_op_96;
+       const real_t tmp_kernel_op_142 = -tmp_kernel_op_25 + 0.43241207267228088;
+       const real_t tmp_kernel_op_143 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_142 - tmp_kernel_op_99;
+       const real_t tmp_kernel_op_144 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_142 - tmp_kernel_op_102;
+       const real_t tmp_kernel_op_145 = -tmp_kernel_op_31 + 3.2673902919218341;
+       const real_t tmp_kernel_op_146 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_145 - tmp_kernel_op_105;
+       const real_t tmp_kernel_op_147 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_145 - tmp_kernel_op_108;
+       const real_t tmp_kernel_op_148 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_135 + tmp_kernel_op_134*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_15 + tmp_kernel_op_138*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_21 + tmp_kernel_op_141*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_27 + tmp_kernel_op_144*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_33 + tmp_kernel_op_147*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_3 + tmp_kernel_op_132*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_149 = jac_affine_inv_0_0_GRAY*27.0;
+       const int64_t tmp_kernel_op_150 = 0;
+       const real_t tmp_kernel_op_151 = jac_affine_inv_1_0_GRAY*27.0;
+       const real_t tmp_kernel_op_152 = 0.15066167873471437;
+       const real_t tmp_kernel_op_153 = tmp_kernel_op_149*((real_t)(tmp_kernel_op_150)) + tmp_kernel_op_151*tmp_kernel_op_152;
+       const real_t tmp_kernel_op_154 = jac_affine_inv_0_1_GRAY*27.0;
+       const real_t tmp_kernel_op_155 = jac_affine_inv_1_1_GRAY*27.0;
+       const real_t tmp_kernel_op_156 = tmp_kernel_op_152*tmp_kernel_op_155 + tmp_kernel_op_154*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_kernel_op_157 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_158 = -0.066417604867409372;
+       const real_t tmp_kernel_op_159 = tmp_kernel_op_149*tmp_kernel_op_157 + tmp_kernel_op_151*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_160 = tmp_kernel_op_154*tmp_kernel_op_157 + tmp_kernel_op_155*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_161 = 0.15066167873471437;
+       const int64_t tmp_kernel_op_162 = 0;
+       const real_t tmp_kernel_op_163 = tmp_kernel_op_149*tmp_kernel_op_161 + tmp_kernel_op_151*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_164 = tmp_kernel_op_154*tmp_kernel_op_161 + tmp_kernel_op_155*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_165 = -0.066417604867409372;
+       const real_t tmp_kernel_op_166 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_167 = tmp_kernel_op_149*tmp_kernel_op_165 + tmp_kernel_op_151*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_168 = tmp_kernel_op_154*tmp_kernel_op_165 + tmp_kernel_op_155*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_169 = -0.15066167873471437;
+       const real_t tmp_kernel_op_170 = -0.15066167873471437;
+       const real_t tmp_kernel_op_171 = tmp_kernel_op_149*tmp_kernel_op_169 + tmp_kernel_op_151*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_172 = tmp_kernel_op_154*tmp_kernel_op_169 + tmp_kernel_op_155*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_173 = 0.066417604867409386;
+       const real_t tmp_kernel_op_174 = 0.066417604867409386;
+       const real_t tmp_kernel_op_175 = tmp_kernel_op_149*tmp_kernel_op_173 + tmp_kernel_op_151*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_176 = tmp_kernel_op_154*tmp_kernel_op_173 + tmp_kernel_op_155*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_177 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_160 + tmp_kernel_op_159*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_163 + tmp_kernel_op_16*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_21 + tmp_kernel_op_168*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_27 + tmp_kernel_op_172*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_33 + tmp_kernel_op_176*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_3 + tmp_kernel_op_156*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_178 = (jac_affine_inv_0_0_GRAY*jac_affine_inv_0_0_GRAY);
+       const real_t tmp_kernel_op_179 = (tmp_kernel_op_36*tmp_kernel_op_36);
+       const real_t tmp_kernel_op_180 = (jac_affine_inv_0_1_GRAY*jac_affine_inv_0_1_GRAY);
+       const real_t tmp_kernel_op_181 = (tmp_kernel_op_39*tmp_kernel_op_39);
+       const real_t tmp_kernel_op_182 = (tmp_kernel_op_42*tmp_kernel_op_42);
+       const real_t tmp_kernel_op_183 = (tmp_kernel_op_45*tmp_kernel_op_45);
+       const real_t tmp_kernel_op_184 = (tmp_kernel_op_48*tmp_kernel_op_48);
+       const real_t tmp_kernel_op_185 = (tmp_kernel_op_51*tmp_kernel_op_51);
+       const real_t tmp_kernel_op_186 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_59 + tmp_kernel_op_41*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_62 + tmp_kernel_op_44*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_65 + tmp_kernel_op_47*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_49*tmp_kernel_op_68 + tmp_kernel_op_50*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_52*tmp_kernel_op_71 + tmp_kernel_op_53*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_56 + tmp_kernel_op_38*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_187 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_82 + tmp_kernel_op_41*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_88 + tmp_kernel_op_44*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_94 + tmp_kernel_op_47*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_49 + tmp_kernel_op_103*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_52 + tmp_kernel_op_109*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_76 + tmp_kernel_op_38*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_188 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_40 + tmp_kernel_op_116*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_43 + tmp_kernel_op_119*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_46 + tmp_kernel_op_122*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_49 + tmp_kernel_op_125*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_52 + tmp_kernel_op_128*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_37 + tmp_kernel_op_113*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_189 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_40 + tmp_kernel_op_135*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_43 + tmp_kernel_op_138*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_46 + tmp_kernel_op_141*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_49 + tmp_kernel_op_144*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_52 + tmp_kernel_op_147*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_37 + tmp_kernel_op_132*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_190 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_40 + tmp_kernel_op_160*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_43 + tmp_kernel_op_164*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_46 + tmp_kernel_op_168*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_49 + tmp_kernel_op_172*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_52 + tmp_kernel_op_176*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_37 + tmp_kernel_op_156*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_191 = (jac_affine_inv_1_0_GRAY*jac_affine_inv_1_0_GRAY);
+       const real_t tmp_kernel_op_192 = (tmp_kernel_op_55*tmp_kernel_op_55);
+       const real_t tmp_kernel_op_193 = (jac_affine_inv_1_1_GRAY*jac_affine_inv_1_1_GRAY);
+       const real_t tmp_kernel_op_194 = (tmp_kernel_op_58*tmp_kernel_op_58);
+       const real_t tmp_kernel_op_195 = (tmp_kernel_op_61*tmp_kernel_op_61);
+       const real_t tmp_kernel_op_196 = (tmp_kernel_op_64*tmp_kernel_op_64);
+       const real_t tmp_kernel_op_197 = (tmp_kernel_op_67*tmp_kernel_op_67);
+       const real_t tmp_kernel_op_198 = (tmp_kernel_op_70*tmp_kernel_op_70);
+       const real_t tmp_kernel_op_199 = tmp_kernel_op_11*(tmp_kernel_op_59*tmp_kernel_op_82 + tmp_kernel_op_60*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_62*tmp_kernel_op_88 + tmp_kernel_op_63*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_65*tmp_kernel_op_94 + tmp_kernel_op_66*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_68 + tmp_kernel_op_103*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_71 + tmp_kernel_op_109*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_56*tmp_kernel_op_76 + tmp_kernel_op_57*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_200 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_59 + tmp_kernel_op_116*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_62 + tmp_kernel_op_119*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_65 + tmp_kernel_op_122*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_68 + tmp_kernel_op_125*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_71 + tmp_kernel_op_128*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_56 + tmp_kernel_op_113*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_201 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_59 + tmp_kernel_op_135*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_62 + tmp_kernel_op_138*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_65 + tmp_kernel_op_141*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_68 + tmp_kernel_op_144*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_71 + tmp_kernel_op_147*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_56 + tmp_kernel_op_132*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_202 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_59 + tmp_kernel_op_160*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_62 + tmp_kernel_op_164*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_65 + tmp_kernel_op_168*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_68 + tmp_kernel_op_172*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_71 + tmp_kernel_op_176*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_56 + tmp_kernel_op_156*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_203 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_82 + tmp_kernel_op_116*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_88 + tmp_kernel_op_119*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_94 + tmp_kernel_op_122*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_124 + tmp_kernel_op_103*tmp_kernel_op_125) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_127 + tmp_kernel_op_109*tmp_kernel_op_128) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_76 + tmp_kernel_op_113*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_204 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_82 + tmp_kernel_op_135*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_88 + tmp_kernel_op_138*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_94 + tmp_kernel_op_141*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_143 + tmp_kernel_op_103*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_146 + tmp_kernel_op_109*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_76 + tmp_kernel_op_132*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_205 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_82 + tmp_kernel_op_160*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_88 + tmp_kernel_op_164*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_94 + tmp_kernel_op_168*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_171 + tmp_kernel_op_103*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_175 + tmp_kernel_op_109*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_76 + tmp_kernel_op_156*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_206 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_134 + tmp_kernel_op_116*tmp_kernel_op_135) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_137 + tmp_kernel_op_119*tmp_kernel_op_138) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_140 + tmp_kernel_op_122*tmp_kernel_op_141) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_143 + tmp_kernel_op_125*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_146 + tmp_kernel_op_128*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_131 + tmp_kernel_op_113*tmp_kernel_op_132);
+       const real_t tmp_kernel_op_207 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_159 + tmp_kernel_op_116*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_163 + tmp_kernel_op_119*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_167 + tmp_kernel_op_122*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_171 + tmp_kernel_op_125*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_175 + tmp_kernel_op_128*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_153 + tmp_kernel_op_113*tmp_kernel_op_156);
+       const real_t tmp_kernel_op_208 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_159 + tmp_kernel_op_135*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_163 + tmp_kernel_op_138*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_167 + tmp_kernel_op_141*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_171 + tmp_kernel_op_144*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_175 + tmp_kernel_op_147*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_153 + tmp_kernel_op_132*tmp_kernel_op_156);
+       const real_t tmp_moved_constant_7 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_8 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_9 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_10 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_11 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_12 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_13 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_14 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_15 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_16 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_17 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_18 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_19 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_20 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_21 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_22 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_23 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_24 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_25 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_26 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_27 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_28 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_29 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_30 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_31 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_32 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_33 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_34 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_35 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_36 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_37 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_27 + tmp_moved_constant_11*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_29 + tmp_moved_constant_14*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_31 + tmp_moved_constant_17*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_33 + tmp_moved_constant_20*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_35 + tmp_moved_constant_23*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_7 + tmp_moved_constant_26*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_38 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_39 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_40 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_41 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_42 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_43 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_44 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_45 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_46 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_47 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_48 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_49 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_50 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_40 + tmp_moved_constant_11*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_42 + tmp_moved_constant_14*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_44 + tmp_moved_constant_17*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_46 + tmp_moved_constant_20*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_48 + tmp_moved_constant_23*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_7 + tmp_moved_constant_39*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_51 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_52 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_53 = tmp_moved_constant_51 + tmp_moved_constant_52;
+       const real_t tmp_moved_constant_54 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_55 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_56 = tmp_moved_constant_54 + tmp_moved_constant_55;
+       const real_t tmp_moved_constant_57 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_58 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_59 = tmp_moved_constant_57 + tmp_moved_constant_58;
+       const real_t tmp_moved_constant_60 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_61 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_62 = tmp_moved_constant_60 + tmp_moved_constant_61;
+       const real_t tmp_moved_constant_63 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_64 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_65 = tmp_moved_constant_63 + tmp_moved_constant_64;
+       const real_t tmp_moved_constant_66 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_67 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_68 = tmp_moved_constant_66 + tmp_moved_constant_67;
+       const real_t tmp_moved_constant_69 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_70 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_71 = tmp_moved_constant_69 + tmp_moved_constant_70;
+       const real_t tmp_moved_constant_72 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_73 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_74 = tmp_moved_constant_72 + tmp_moved_constant_73;
+       const real_t tmp_moved_constant_75 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_76 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_77 = tmp_moved_constant_75 + tmp_moved_constant_76;
+       const real_t tmp_moved_constant_78 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_79 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_80 = tmp_moved_constant_78 + tmp_moved_constant_79;
+       const real_t tmp_moved_constant_81 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_82 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_83 = tmp_moved_constant_81 + tmp_moved_constant_82;
+       const real_t tmp_moved_constant_84 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_85 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_86 = tmp_moved_constant_84 + tmp_moved_constant_85;
+       const real_t tmp_moved_constant_87 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_59 + tmp_moved_constant_11*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_65 + tmp_moved_constant_14*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_71 + tmp_moved_constant_17*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_77 + tmp_moved_constant_20*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_83 + tmp_moved_constant_23*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_53*tmp_moved_constant_7 + tmp_moved_constant_56*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_88 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_111 - tmp_moved_constant_51;
+       const real_t tmp_moved_constant_89 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_111 - tmp_moved_constant_54;
+       const real_t tmp_moved_constant_90 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_114 - tmp_moved_constant_57;
+       const real_t tmp_moved_constant_91 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_114 - tmp_moved_constant_60;
+       const real_t tmp_moved_constant_92 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_117 - tmp_moved_constant_63;
+       const real_t tmp_moved_constant_93 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_117 - tmp_moved_constant_66;
+       const real_t tmp_moved_constant_94 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_120 - tmp_moved_constant_69;
+       const real_t tmp_moved_constant_95 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_120 - tmp_moved_constant_72;
+       const real_t tmp_moved_constant_96 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_123 - tmp_moved_constant_75;
+       const real_t tmp_moved_constant_97 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_123 - tmp_moved_constant_78;
+       const real_t tmp_moved_constant_98 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_126 - tmp_moved_constant_81;
+       const real_t tmp_moved_constant_99 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_126 - tmp_moved_constant_84;
+       const real_t tmp_moved_constant_100 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_90 + tmp_moved_constant_11*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_13*tmp_moved_constant_92 + tmp_moved_constant_14*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_16*tmp_moved_constant_94 + tmp_moved_constant_17*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_19*tmp_moved_constant_96 + tmp_moved_constant_20*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_22*tmp_moved_constant_98 + tmp_moved_constant_23*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_7*tmp_moved_constant_88 + tmp_moved_constant_8*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_101 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_130 - tmp_moved_constant_52;
+       const real_t tmp_moved_constant_102 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_130 - tmp_moved_constant_55;
+       const real_t tmp_moved_constant_103 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_133 - tmp_moved_constant_58;
+       const real_t tmp_moved_constant_104 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_133 - tmp_moved_constant_61;
+       const real_t tmp_moved_constant_105 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_136 - tmp_moved_constant_64;
+       const real_t tmp_moved_constant_106 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_136 - tmp_moved_constant_67;
+       const real_t tmp_moved_constant_107 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_139 - tmp_moved_constant_70;
+       const real_t tmp_moved_constant_108 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_139 - tmp_moved_constant_73;
+       const real_t tmp_moved_constant_109 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_142 - tmp_moved_constant_76;
+       const real_t tmp_moved_constant_110 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_142 - tmp_moved_constant_79;
+       const real_t tmp_moved_constant_111 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_145 - tmp_moved_constant_82;
+       const real_t tmp_moved_constant_112 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_145 - tmp_moved_constant_85;
+       const real_t tmp_moved_constant_113 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_103 + tmp_moved_constant_104*tmp_moved_constant_11) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_13 + tmp_moved_constant_106*tmp_moved_constant_14) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_16 + tmp_moved_constant_108*tmp_moved_constant_17) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_19 + tmp_moved_constant_110*tmp_moved_constant_20) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_22 + tmp_moved_constant_112*tmp_moved_constant_23) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_7 + tmp_moved_constant_102*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_114 = jac_affine_inv_0_0_BLUE*27.0;
+       const real_t tmp_moved_constant_115 = jac_affine_inv_1_0_BLUE*27.0;
+       const real_t tmp_moved_constant_116 = tmp_kernel_op_152*tmp_moved_constant_115 + tmp_moved_constant_114*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_117 = jac_affine_inv_0_1_BLUE*27.0;
+       const real_t tmp_moved_constant_118 = jac_affine_inv_1_1_BLUE*27.0;
+       const real_t tmp_moved_constant_119 = tmp_kernel_op_152*tmp_moved_constant_118 + tmp_moved_constant_117*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_120 = tmp_kernel_op_157*tmp_moved_constant_114 + tmp_kernel_op_158*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_121 = tmp_kernel_op_157*tmp_moved_constant_117 + tmp_kernel_op_158*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_122 = tmp_kernel_op_161*tmp_moved_constant_114 + tmp_moved_constant_115*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_123 = tmp_kernel_op_161*tmp_moved_constant_117 + tmp_moved_constant_118*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_124 = tmp_kernel_op_165*tmp_moved_constant_114 + tmp_kernel_op_166*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_125 = tmp_kernel_op_165*tmp_moved_constant_117 + tmp_kernel_op_166*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_126 = tmp_kernel_op_169*tmp_moved_constant_114 + tmp_kernel_op_170*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_127 = tmp_kernel_op_169*tmp_moved_constant_117 + tmp_kernel_op_170*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_128 = tmp_kernel_op_173*tmp_moved_constant_114 + tmp_kernel_op_174*tmp_moved_constant_115;
+       const real_t tmp_moved_constant_129 = tmp_kernel_op_173*tmp_moved_constant_117 + tmp_kernel_op_174*tmp_moved_constant_118;
+       const real_t tmp_moved_constant_130 = tmp_moved_constant_12*(tmp_moved_constant_10*tmp_moved_constant_120 + tmp_moved_constant_11*tmp_moved_constant_121) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_13 + tmp_moved_constant_123*tmp_moved_constant_14) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_16 + tmp_moved_constant_125*tmp_moved_constant_17) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_19 + tmp_moved_constant_127*tmp_moved_constant_20) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_22 + tmp_moved_constant_129*tmp_moved_constant_23) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_7 + tmp_moved_constant_119*tmp_moved_constant_8);
+       const real_t tmp_moved_constant_131 = (jac_affine_inv_0_0_BLUE*jac_affine_inv_0_0_BLUE);
+       const real_t tmp_moved_constant_132 = (jac_affine_inv_0_1_BLUE*jac_affine_inv_0_1_BLUE);
+       const real_t tmp_moved_constant_133 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_40 + tmp_moved_constant_28*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_42 + tmp_moved_constant_30*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_44 + tmp_moved_constant_32*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_46 + tmp_moved_constant_34*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_48 + tmp_moved_constant_36*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_38 + tmp_moved_constant_26*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_134 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_59 + tmp_moved_constant_28*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_65 + tmp_moved_constant_30*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_71 + tmp_moved_constant_32*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_77 + tmp_moved_constant_34*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_83 + tmp_moved_constant_36*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_53 + tmp_moved_constant_26*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_135 = tmp_moved_constant_12*(tmp_moved_constant_27*tmp_moved_constant_90 + tmp_moved_constant_28*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_29*tmp_moved_constant_92 + tmp_moved_constant_30*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_31*tmp_moved_constant_94 + tmp_moved_constant_32*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_33*tmp_moved_constant_96 + tmp_moved_constant_34*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_35*tmp_moved_constant_98 + tmp_moved_constant_36*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_25*tmp_moved_constant_88 + tmp_moved_constant_26*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_136 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_27 + tmp_moved_constant_104*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_29 + tmp_moved_constant_106*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_31 + tmp_moved_constant_108*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_33 + tmp_moved_constant_110*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_35 + tmp_moved_constant_112*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_25 + tmp_moved_constant_102*tmp_moved_constant_26);
+       const real_t tmp_moved_constant_137 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_27 + tmp_moved_constant_121*tmp_moved_constant_28) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_29 + tmp_moved_constant_123*tmp_moved_constant_30) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_31 + tmp_moved_constant_125*tmp_moved_constant_32) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_33 + tmp_moved_constant_127*tmp_moved_constant_34) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_35 + tmp_moved_constant_129*tmp_moved_constant_36) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_25 + tmp_moved_constant_119*tmp_moved_constant_26);
+       const real_t tmp_moved_constant_138 = (jac_affine_inv_1_0_BLUE*jac_affine_inv_1_0_BLUE);
+       const real_t tmp_moved_constant_139 = (jac_affine_inv_1_1_BLUE*jac_affine_inv_1_1_BLUE);
+       const real_t tmp_moved_constant_140 = tmp_moved_constant_12*(tmp_moved_constant_40*tmp_moved_constant_59 + tmp_moved_constant_41*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_42*tmp_moved_constant_65 + tmp_moved_constant_43*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_44*tmp_moved_constant_71 + tmp_moved_constant_45*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_46*tmp_moved_constant_77 + tmp_moved_constant_47*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_48*tmp_moved_constant_83 + tmp_moved_constant_49*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_53 + tmp_moved_constant_39*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_141 = tmp_moved_constant_12*(tmp_moved_constant_40*tmp_moved_constant_90 + tmp_moved_constant_41*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_42*tmp_moved_constant_92 + tmp_moved_constant_43*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_44*tmp_moved_constant_94 + tmp_moved_constant_45*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_46*tmp_moved_constant_96 + tmp_moved_constant_47*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_48*tmp_moved_constant_98 + tmp_moved_constant_49*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_38*tmp_moved_constant_88 + tmp_moved_constant_39*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_142 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_40 + tmp_moved_constant_104*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_42 + tmp_moved_constant_106*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_44 + tmp_moved_constant_108*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_46 + tmp_moved_constant_110*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_48 + tmp_moved_constant_112*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_38 + tmp_moved_constant_102*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_143 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_40 + tmp_moved_constant_121*tmp_moved_constant_41) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_42 + tmp_moved_constant_123*tmp_moved_constant_43) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_44 + tmp_moved_constant_125*tmp_moved_constant_45) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_46 + tmp_moved_constant_127*tmp_moved_constant_47) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_48 + tmp_moved_constant_129*tmp_moved_constant_49) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_38 + tmp_moved_constant_119*tmp_moved_constant_39);
+       const real_t tmp_moved_constant_144 = tmp_moved_constant_12*(tmp_moved_constant_59*tmp_moved_constant_90 + tmp_moved_constant_62*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_65*tmp_moved_constant_92 + tmp_moved_constant_68*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_71*tmp_moved_constant_94 + tmp_moved_constant_74*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_77*tmp_moved_constant_96 + tmp_moved_constant_80*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_83*tmp_moved_constant_98 + tmp_moved_constant_86*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_53*tmp_moved_constant_88 + tmp_moved_constant_56*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_145 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_59 + tmp_moved_constant_104*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_65 + tmp_moved_constant_106*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_71 + tmp_moved_constant_108*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_77 + tmp_moved_constant_110*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_83 + tmp_moved_constant_112*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_53 + tmp_moved_constant_102*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_146 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_59 + tmp_moved_constant_121*tmp_moved_constant_62) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_65 + tmp_moved_constant_123*tmp_moved_constant_68) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_71 + tmp_moved_constant_125*tmp_moved_constant_74) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_77 + tmp_moved_constant_127*tmp_moved_constant_80) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_83 + tmp_moved_constant_129*tmp_moved_constant_86) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_53 + tmp_moved_constant_119*tmp_moved_constant_56);
+       const real_t tmp_moved_constant_147 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_90 + tmp_moved_constant_104*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_92 + tmp_moved_constant_106*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_94 + tmp_moved_constant_108*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_96 + tmp_moved_constant_110*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_98 + tmp_moved_constant_112*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_88 + tmp_moved_constant_102*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_148 = tmp_moved_constant_12*(tmp_moved_constant_120*tmp_moved_constant_90 + tmp_moved_constant_121*tmp_moved_constant_91) + tmp_moved_constant_15*(tmp_moved_constant_122*tmp_moved_constant_92 + tmp_moved_constant_123*tmp_moved_constant_93) + tmp_moved_constant_18*(tmp_moved_constant_124*tmp_moved_constant_94 + tmp_moved_constant_125*tmp_moved_constant_95) + tmp_moved_constant_21*(tmp_moved_constant_126*tmp_moved_constant_96 + tmp_moved_constant_127*tmp_moved_constant_97) + tmp_moved_constant_24*(tmp_moved_constant_128*tmp_moved_constant_98 + tmp_moved_constant_129*tmp_moved_constant_99) + tmp_moved_constant_9*(tmp_moved_constant_116*tmp_moved_constant_88 + tmp_moved_constant_119*tmp_moved_constant_89);
+       const real_t tmp_moved_constant_149 = tmp_moved_constant_12*(tmp_moved_constant_103*tmp_moved_constant_120 + tmp_moved_constant_104*tmp_moved_constant_121) + tmp_moved_constant_15*(tmp_moved_constant_105*tmp_moved_constant_122 + tmp_moved_constant_106*tmp_moved_constant_123) + tmp_moved_constant_18*(tmp_moved_constant_107*tmp_moved_constant_124 + tmp_moved_constant_108*tmp_moved_constant_125) + tmp_moved_constant_21*(tmp_moved_constant_109*tmp_moved_constant_126 + tmp_moved_constant_110*tmp_moved_constant_127) + tmp_moved_constant_24*(tmp_moved_constant_111*tmp_moved_constant_128 + tmp_moved_constant_112*tmp_moved_constant_129) + tmp_moved_constant_9*(tmp_moved_constant_101*tmp_moved_constant_116 + tmp_moved_constant_102*tmp_moved_constant_119);
+       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 src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_2 = _data_srcVertex[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_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_6 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t elMatVec_0 = src_dof_0*(tmp_kernel_op_11*((tmp_kernel_op_10*tmp_kernel_op_10) + (tmp_kernel_op_9*tmp_kernel_op_9)) + tmp_kernel_op_17*((tmp_kernel_op_15*tmp_kernel_op_15) + (tmp_kernel_op_16*tmp_kernel_op_16)) + tmp_kernel_op_23*((tmp_kernel_op_21*tmp_kernel_op_21) + (tmp_kernel_op_22*tmp_kernel_op_22)) + tmp_kernel_op_29*((tmp_kernel_op_27*tmp_kernel_op_27) + (tmp_kernel_op_28*tmp_kernel_op_28)) + tmp_kernel_op_35*((tmp_kernel_op_33*tmp_kernel_op_33) + (tmp_kernel_op_34*tmp_kernel_op_34)) + tmp_kernel_op_5*((tmp_kernel_op_3*tmp_kernel_op_3) + (tmp_kernel_op_4*tmp_kernel_op_4))) + src_dof_1*tmp_kernel_op_54 + src_dof_2*tmp_kernel_op_73 + src_dof_3*tmp_kernel_op_110 + src_dof_4*tmp_kernel_op_129 + src_dof_5*tmp_kernel_op_148 + src_dof_6*tmp_kernel_op_177;
+             const real_t elMatVec_1 = src_dof_0*tmp_kernel_op_54 + src_dof_1*(tmp_kernel_op_11*(tmp_kernel_op_178*tmp_kernel_op_181 + tmp_kernel_op_180*tmp_kernel_op_181) + tmp_kernel_op_17*(tmp_kernel_op_178*tmp_kernel_op_182 + tmp_kernel_op_180*tmp_kernel_op_182) + tmp_kernel_op_23*(tmp_kernel_op_178*tmp_kernel_op_183 + tmp_kernel_op_180*tmp_kernel_op_183) + tmp_kernel_op_29*(tmp_kernel_op_178*tmp_kernel_op_184 + tmp_kernel_op_180*tmp_kernel_op_184) + tmp_kernel_op_35*(tmp_kernel_op_178*tmp_kernel_op_185 + tmp_kernel_op_180*tmp_kernel_op_185) + tmp_kernel_op_5*(tmp_kernel_op_178*tmp_kernel_op_179 + tmp_kernel_op_179*tmp_kernel_op_180)) + src_dof_2*tmp_kernel_op_186 + src_dof_3*tmp_kernel_op_187 + src_dof_4*tmp_kernel_op_188 + src_dof_5*tmp_kernel_op_189 + src_dof_6*tmp_kernel_op_190;
+             const real_t elMatVec_2 = src_dof_0*tmp_kernel_op_73 + src_dof_1*tmp_kernel_op_186 + src_dof_2*(tmp_kernel_op_11*(tmp_kernel_op_191*tmp_kernel_op_194 + tmp_kernel_op_193*tmp_kernel_op_194) + tmp_kernel_op_17*(tmp_kernel_op_191*tmp_kernel_op_195 + tmp_kernel_op_193*tmp_kernel_op_195) + tmp_kernel_op_23*(tmp_kernel_op_191*tmp_kernel_op_196 + tmp_kernel_op_193*tmp_kernel_op_196) + tmp_kernel_op_29*(tmp_kernel_op_191*tmp_kernel_op_197 + tmp_kernel_op_193*tmp_kernel_op_197) + tmp_kernel_op_35*(tmp_kernel_op_191*tmp_kernel_op_198 + tmp_kernel_op_193*tmp_kernel_op_198) + tmp_kernel_op_5*(tmp_kernel_op_191*tmp_kernel_op_192 + tmp_kernel_op_192*tmp_kernel_op_193)) + src_dof_3*tmp_kernel_op_199 + src_dof_4*tmp_kernel_op_200 + src_dof_5*tmp_kernel_op_201 + src_dof_6*tmp_kernel_op_202;
+             const real_t elMatVec_3 = src_dof_0*tmp_kernel_op_110 + src_dof_1*tmp_kernel_op_187 + src_dof_2*tmp_kernel_op_199 + src_dof_3*(tmp_kernel_op_11*((tmp_kernel_op_82*tmp_kernel_op_82) + (tmp_kernel_op_85*tmp_kernel_op_85)) + tmp_kernel_op_17*((tmp_kernel_op_88*tmp_kernel_op_88) + (tmp_kernel_op_91*tmp_kernel_op_91)) + tmp_kernel_op_23*((tmp_kernel_op_94*tmp_kernel_op_94) + (tmp_kernel_op_97*tmp_kernel_op_97)) + tmp_kernel_op_29*((tmp_kernel_op_100*tmp_kernel_op_100) + (tmp_kernel_op_103*tmp_kernel_op_103)) + tmp_kernel_op_35*((tmp_kernel_op_106*tmp_kernel_op_106) + (tmp_kernel_op_109*tmp_kernel_op_109)) + tmp_kernel_op_5*((tmp_kernel_op_76*tmp_kernel_op_76) + (tmp_kernel_op_79*tmp_kernel_op_79))) + src_dof_4*tmp_kernel_op_203 + src_dof_5*tmp_kernel_op_204 + src_dof_6*tmp_kernel_op_205;
+             const real_t elMatVec_4 = src_dof_0*tmp_kernel_op_129 + src_dof_1*tmp_kernel_op_188 + src_dof_2*tmp_kernel_op_200 + src_dof_3*tmp_kernel_op_203 + src_dof_4*(tmp_kernel_op_11*((tmp_kernel_op_115*tmp_kernel_op_115) + (tmp_kernel_op_116*tmp_kernel_op_116)) + tmp_kernel_op_17*((tmp_kernel_op_118*tmp_kernel_op_118) + (tmp_kernel_op_119*tmp_kernel_op_119)) + tmp_kernel_op_23*((tmp_kernel_op_121*tmp_kernel_op_121) + (tmp_kernel_op_122*tmp_kernel_op_122)) + tmp_kernel_op_29*((tmp_kernel_op_124*tmp_kernel_op_124) + (tmp_kernel_op_125*tmp_kernel_op_125)) + tmp_kernel_op_35*((tmp_kernel_op_127*tmp_kernel_op_127) + (tmp_kernel_op_128*tmp_kernel_op_128)) + tmp_kernel_op_5*((tmp_kernel_op_112*tmp_kernel_op_112) + (tmp_kernel_op_113*tmp_kernel_op_113))) + src_dof_5*tmp_kernel_op_206 + src_dof_6*tmp_kernel_op_207;
+             const real_t elMatVec_5 = src_dof_0*tmp_kernel_op_148 + src_dof_1*tmp_kernel_op_189 + src_dof_2*tmp_kernel_op_201 + src_dof_3*tmp_kernel_op_204 + src_dof_4*tmp_kernel_op_206 + src_dof_5*(tmp_kernel_op_11*((tmp_kernel_op_134*tmp_kernel_op_134) + (tmp_kernel_op_135*tmp_kernel_op_135)) + tmp_kernel_op_17*((tmp_kernel_op_137*tmp_kernel_op_137) + (tmp_kernel_op_138*tmp_kernel_op_138)) + tmp_kernel_op_23*((tmp_kernel_op_140*tmp_kernel_op_140) + (tmp_kernel_op_141*tmp_kernel_op_141)) + tmp_kernel_op_29*((tmp_kernel_op_143*tmp_kernel_op_143) + (tmp_kernel_op_144*tmp_kernel_op_144)) + tmp_kernel_op_35*((tmp_kernel_op_146*tmp_kernel_op_146) + (tmp_kernel_op_147*tmp_kernel_op_147)) + tmp_kernel_op_5*((tmp_kernel_op_131*tmp_kernel_op_131) + (tmp_kernel_op_132*tmp_kernel_op_132))) + src_dof_6*tmp_kernel_op_208;
+             const real_t elMatVec_6 = src_dof_0*tmp_kernel_op_177 + src_dof_1*tmp_kernel_op_190 + src_dof_2*tmp_kernel_op_202 + src_dof_3*tmp_kernel_op_205 + src_dof_4*tmp_kernel_op_207 + src_dof_5*tmp_kernel_op_208 + src_dof_6*(tmp_kernel_op_11*((tmp_kernel_op_159*tmp_kernel_op_159) + (tmp_kernel_op_160*tmp_kernel_op_160)) + tmp_kernel_op_17*((tmp_kernel_op_163*tmp_kernel_op_163) + (tmp_kernel_op_164*tmp_kernel_op_164)) + tmp_kernel_op_23*((tmp_kernel_op_167*tmp_kernel_op_167) + (tmp_kernel_op_168*tmp_kernel_op_168)) + tmp_kernel_op_29*((tmp_kernel_op_171*tmp_kernel_op_171) + (tmp_kernel_op_172*tmp_kernel_op_172)) + tmp_kernel_op_35*((tmp_kernel_op_175*tmp_kernel_op_175) + (tmp_kernel_op_176*tmp_kernel_op_176)) + tmp_kernel_op_5*((tmp_kernel_op_153*tmp_kernel_op_153) + (tmp_kernel_op_156*tmp_kernel_op_156)));
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_6 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                }
+             }
+             const real_t tmp_moved_constant_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t tmp_moved_constant_1 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t tmp_moved_constant_2 = _data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+             const real_t tmp_moved_constant_3 = _data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+             const real_t tmp_moved_constant_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+             const real_t tmp_moved_constant_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t tmp_moved_constant_6 = _data_src[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t tmp_moved_constant_150 = tmp_moved_constant_0*(tmp_moved_constant_12*((tmp_moved_constant_10*tmp_moved_constant_10) + (tmp_moved_constant_11*tmp_moved_constant_11)) + tmp_moved_constant_15*((tmp_moved_constant_13*tmp_moved_constant_13) + (tmp_moved_constant_14*tmp_moved_constant_14)) + tmp_moved_constant_18*((tmp_moved_constant_16*tmp_moved_constant_16) + (tmp_moved_constant_17*tmp_moved_constant_17)) + tmp_moved_constant_21*((tmp_moved_constant_19*tmp_moved_constant_19) + (tmp_moved_constant_20*tmp_moved_constant_20)) + tmp_moved_constant_24*((tmp_moved_constant_22*tmp_moved_constant_22) + (tmp_moved_constant_23*tmp_moved_constant_23)) + tmp_moved_constant_9*((tmp_moved_constant_7*tmp_moved_constant_7) + (tmp_moved_constant_8*tmp_moved_constant_8))) + tmp_moved_constant_1*tmp_moved_constant_37 + tmp_moved_constant_100*tmp_moved_constant_4 + tmp_moved_constant_113*tmp_moved_constant_5 + tmp_moved_constant_130*tmp_moved_constant_6 + tmp_moved_constant_2*tmp_moved_constant_50 + tmp_moved_constant_3*tmp_moved_constant_87;
+             const real_t tmp_moved_constant_151 = tmp_moved_constant_0*tmp_moved_constant_37 + tmp_moved_constant_1*(tmp_moved_constant_12*(tmp_kernel_op_181*tmp_moved_constant_131 + tmp_kernel_op_181*tmp_moved_constant_132) + tmp_moved_constant_15*(tmp_kernel_op_182*tmp_moved_constant_131 + tmp_kernel_op_182*tmp_moved_constant_132) + tmp_moved_constant_18*(tmp_kernel_op_183*tmp_moved_constant_131 + tmp_kernel_op_183*tmp_moved_constant_132) + tmp_moved_constant_21*(tmp_kernel_op_184*tmp_moved_constant_131 + tmp_kernel_op_184*tmp_moved_constant_132) + tmp_moved_constant_24*(tmp_kernel_op_185*tmp_moved_constant_131 + tmp_kernel_op_185*tmp_moved_constant_132) + tmp_moved_constant_9*(tmp_kernel_op_179*tmp_moved_constant_131 + tmp_kernel_op_179*tmp_moved_constant_132)) + tmp_moved_constant_133*tmp_moved_constant_2 + tmp_moved_constant_134*tmp_moved_constant_3 + tmp_moved_constant_135*tmp_moved_constant_4 + tmp_moved_constant_136*tmp_moved_constant_5 + tmp_moved_constant_137*tmp_moved_constant_6;
+             const real_t tmp_moved_constant_152 = tmp_moved_constant_0*tmp_moved_constant_50 + tmp_moved_constant_1*tmp_moved_constant_133 + tmp_moved_constant_140*tmp_moved_constant_3 + tmp_moved_constant_141*tmp_moved_constant_4 + tmp_moved_constant_142*tmp_moved_constant_5 + tmp_moved_constant_143*tmp_moved_constant_6 + tmp_moved_constant_2*(tmp_moved_constant_12*(tmp_kernel_op_194*tmp_moved_constant_138 + tmp_kernel_op_194*tmp_moved_constant_139) + tmp_moved_constant_15*(tmp_kernel_op_195*tmp_moved_constant_138 + tmp_kernel_op_195*tmp_moved_constant_139) + tmp_moved_constant_18*(tmp_kernel_op_196*tmp_moved_constant_138 + tmp_kernel_op_196*tmp_moved_constant_139) + tmp_moved_constant_21*(tmp_kernel_op_197*tmp_moved_constant_138 + tmp_kernel_op_197*tmp_moved_constant_139) + tmp_moved_constant_24*(tmp_kernel_op_198*tmp_moved_constant_138 + tmp_kernel_op_198*tmp_moved_constant_139) + tmp_moved_constant_9*(tmp_kernel_op_192*tmp_moved_constant_138 + tmp_kernel_op_192*tmp_moved_constant_139));
+             const real_t tmp_moved_constant_153 = tmp_moved_constant_0*tmp_moved_constant_87 + tmp_moved_constant_1*tmp_moved_constant_134 + tmp_moved_constant_140*tmp_moved_constant_2 + tmp_moved_constant_144*tmp_moved_constant_4 + tmp_moved_constant_145*tmp_moved_constant_5 + tmp_moved_constant_146*tmp_moved_constant_6 + tmp_moved_constant_3*(tmp_moved_constant_12*((tmp_moved_constant_59*tmp_moved_constant_59) + (tmp_moved_constant_62*tmp_moved_constant_62)) + tmp_moved_constant_15*((tmp_moved_constant_65*tmp_moved_constant_65) + (tmp_moved_constant_68*tmp_moved_constant_68)) + tmp_moved_constant_18*((tmp_moved_constant_71*tmp_moved_constant_71) + (tmp_moved_constant_74*tmp_moved_constant_74)) + tmp_moved_constant_21*((tmp_moved_constant_77*tmp_moved_constant_77) + (tmp_moved_constant_80*tmp_moved_constant_80)) + tmp_moved_constant_24*((tmp_moved_constant_83*tmp_moved_constant_83) + (tmp_moved_constant_86*tmp_moved_constant_86)) + tmp_moved_constant_9*((tmp_moved_constant_53*tmp_moved_constant_53) + (tmp_moved_constant_56*tmp_moved_constant_56)));
+             const real_t tmp_moved_constant_154 = tmp_moved_constant_0*tmp_moved_constant_100 + tmp_moved_constant_1*tmp_moved_constant_135 + tmp_moved_constant_141*tmp_moved_constant_2 + tmp_moved_constant_144*tmp_moved_constant_3 + tmp_moved_constant_147*tmp_moved_constant_5 + tmp_moved_constant_148*tmp_moved_constant_6 + tmp_moved_constant_4*(tmp_moved_constant_12*((tmp_moved_constant_90*tmp_moved_constant_90) + (tmp_moved_constant_91*tmp_moved_constant_91)) + tmp_moved_constant_15*((tmp_moved_constant_92*tmp_moved_constant_92) + (tmp_moved_constant_93*tmp_moved_constant_93)) + tmp_moved_constant_18*((tmp_moved_constant_94*tmp_moved_constant_94) + (tmp_moved_constant_95*tmp_moved_constant_95)) + tmp_moved_constant_21*((tmp_moved_constant_96*tmp_moved_constant_96) + (tmp_moved_constant_97*tmp_moved_constant_97)) + tmp_moved_constant_24*((tmp_moved_constant_98*tmp_moved_constant_98) + (tmp_moved_constant_99*tmp_moved_constant_99)) + tmp_moved_constant_9*((tmp_moved_constant_88*tmp_moved_constant_88) + (tmp_moved_constant_89*tmp_moved_constant_89)));
+             const real_t tmp_moved_constant_155 = tmp_moved_constant_0*tmp_moved_constant_113 + tmp_moved_constant_1*tmp_moved_constant_136 + tmp_moved_constant_142*tmp_moved_constant_2 + tmp_moved_constant_145*tmp_moved_constant_3 + tmp_moved_constant_147*tmp_moved_constant_4 + tmp_moved_constant_149*tmp_moved_constant_6 + tmp_moved_constant_5*(tmp_moved_constant_12*((tmp_moved_constant_103*tmp_moved_constant_103) + (tmp_moved_constant_104*tmp_moved_constant_104)) + tmp_moved_constant_15*((tmp_moved_constant_105*tmp_moved_constant_105) + (tmp_moved_constant_106*tmp_moved_constant_106)) + tmp_moved_constant_18*((tmp_moved_constant_107*tmp_moved_constant_107) + (tmp_moved_constant_108*tmp_moved_constant_108)) + tmp_moved_constant_21*((tmp_moved_constant_109*tmp_moved_constant_109) + (tmp_moved_constant_110*tmp_moved_constant_110)) + tmp_moved_constant_24*((tmp_moved_constant_111*tmp_moved_constant_111) + (tmp_moved_constant_112*tmp_moved_constant_112)) + tmp_moved_constant_9*((tmp_moved_constant_101*tmp_moved_constant_101) + (tmp_moved_constant_102*tmp_moved_constant_102)));
+             const real_t tmp_moved_constant_156 = tmp_moved_constant_0*tmp_moved_constant_130 + tmp_moved_constant_1*tmp_moved_constant_137 + tmp_moved_constant_143*tmp_moved_constant_2 + tmp_moved_constant_146*tmp_moved_constant_3 + tmp_moved_constant_148*tmp_moved_constant_4 + tmp_moved_constant_149*tmp_moved_constant_5 + tmp_moved_constant_6*(tmp_moved_constant_12*((tmp_moved_constant_120*tmp_moved_constant_120) + (tmp_moved_constant_121*tmp_moved_constant_121)) + tmp_moved_constant_15*((tmp_moved_constant_122*tmp_moved_constant_122) + (tmp_moved_constant_123*tmp_moved_constant_123)) + tmp_moved_constant_18*((tmp_moved_constant_124*tmp_moved_constant_124) + (tmp_moved_constant_125*tmp_moved_constant_125)) + tmp_moved_constant_21*((tmp_moved_constant_126*tmp_moved_constant_126) + (tmp_moved_constant_127*tmp_moved_constant_127)) + tmp_moved_constant_24*((tmp_moved_constant_128*tmp_moved_constant_128) + (tmp_moved_constant_129*tmp_moved_constant_129)) + tmp_moved_constant_9*((tmp_moved_constant_116*tmp_moved_constant_116) + (tmp_moved_constant_119*tmp_moved_constant_119)));
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = tmp_moved_constant_150 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_151 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = tmp_moved_constant_152 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                   _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_153 + _data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = tmp_moved_constant_154 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_155 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_156 + _data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                }
+             }
+          }
+          for (int64_t ctr_0 = -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
+          {
+             const real_t src_dof_0 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_1 = _data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+             const real_t src_dof_2 = _data_srcVertex[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_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t src_dof_4 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+             const real_t src_dof_5 = _data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t src_dof_6 = _data_src[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+             const real_t elMatVec_0 = src_dof_0*(tmp_kernel_op_11*((tmp_kernel_op_10*tmp_kernel_op_10) + (tmp_kernel_op_9*tmp_kernel_op_9)) + tmp_kernel_op_17*((tmp_kernel_op_15*tmp_kernel_op_15) + (tmp_kernel_op_16*tmp_kernel_op_16)) + tmp_kernel_op_23*((tmp_kernel_op_21*tmp_kernel_op_21) + (tmp_kernel_op_22*tmp_kernel_op_22)) + tmp_kernel_op_29*((tmp_kernel_op_27*tmp_kernel_op_27) + (tmp_kernel_op_28*tmp_kernel_op_28)) + tmp_kernel_op_35*((tmp_kernel_op_33*tmp_kernel_op_33) + (tmp_kernel_op_34*tmp_kernel_op_34)) + tmp_kernel_op_5*((tmp_kernel_op_3*tmp_kernel_op_3) + (tmp_kernel_op_4*tmp_kernel_op_4))) + src_dof_1*tmp_kernel_op_54 + src_dof_2*tmp_kernel_op_73 + src_dof_3*tmp_kernel_op_110 + src_dof_4*tmp_kernel_op_129 + src_dof_5*tmp_kernel_op_148 + src_dof_6*tmp_kernel_op_177;
+             const real_t elMatVec_1 = src_dof_0*tmp_kernel_op_54 + src_dof_1*(tmp_kernel_op_11*(tmp_kernel_op_178*tmp_kernel_op_181 + tmp_kernel_op_180*tmp_kernel_op_181) + tmp_kernel_op_17*(tmp_kernel_op_178*tmp_kernel_op_182 + tmp_kernel_op_180*tmp_kernel_op_182) + tmp_kernel_op_23*(tmp_kernel_op_178*tmp_kernel_op_183 + tmp_kernel_op_180*tmp_kernel_op_183) + tmp_kernel_op_29*(tmp_kernel_op_178*tmp_kernel_op_184 + tmp_kernel_op_180*tmp_kernel_op_184) + tmp_kernel_op_35*(tmp_kernel_op_178*tmp_kernel_op_185 + tmp_kernel_op_180*tmp_kernel_op_185) + tmp_kernel_op_5*(tmp_kernel_op_178*tmp_kernel_op_179 + tmp_kernel_op_179*tmp_kernel_op_180)) + src_dof_2*tmp_kernel_op_186 + src_dof_3*tmp_kernel_op_187 + src_dof_4*tmp_kernel_op_188 + src_dof_5*tmp_kernel_op_189 + src_dof_6*tmp_kernel_op_190;
+             const real_t elMatVec_2 = src_dof_0*tmp_kernel_op_73 + src_dof_1*tmp_kernel_op_186 + src_dof_2*(tmp_kernel_op_11*(tmp_kernel_op_191*tmp_kernel_op_194 + tmp_kernel_op_193*tmp_kernel_op_194) + tmp_kernel_op_17*(tmp_kernel_op_191*tmp_kernel_op_195 + tmp_kernel_op_193*tmp_kernel_op_195) + tmp_kernel_op_23*(tmp_kernel_op_191*tmp_kernel_op_196 + tmp_kernel_op_193*tmp_kernel_op_196) + tmp_kernel_op_29*(tmp_kernel_op_191*tmp_kernel_op_197 + tmp_kernel_op_193*tmp_kernel_op_197) + tmp_kernel_op_35*(tmp_kernel_op_191*tmp_kernel_op_198 + tmp_kernel_op_193*tmp_kernel_op_198) + tmp_kernel_op_5*(tmp_kernel_op_191*tmp_kernel_op_192 + tmp_kernel_op_192*tmp_kernel_op_193)) + src_dof_3*tmp_kernel_op_199 + src_dof_4*tmp_kernel_op_200 + src_dof_5*tmp_kernel_op_201 + src_dof_6*tmp_kernel_op_202;
+             const real_t elMatVec_3 = src_dof_0*tmp_kernel_op_110 + src_dof_1*tmp_kernel_op_187 + src_dof_2*tmp_kernel_op_199 + src_dof_3*(tmp_kernel_op_11*((tmp_kernel_op_82*tmp_kernel_op_82) + (tmp_kernel_op_85*tmp_kernel_op_85)) + tmp_kernel_op_17*((tmp_kernel_op_88*tmp_kernel_op_88) + (tmp_kernel_op_91*tmp_kernel_op_91)) + tmp_kernel_op_23*((tmp_kernel_op_94*tmp_kernel_op_94) + (tmp_kernel_op_97*tmp_kernel_op_97)) + tmp_kernel_op_29*((tmp_kernel_op_100*tmp_kernel_op_100) + (tmp_kernel_op_103*tmp_kernel_op_103)) + tmp_kernel_op_35*((tmp_kernel_op_106*tmp_kernel_op_106) + (tmp_kernel_op_109*tmp_kernel_op_109)) + tmp_kernel_op_5*((tmp_kernel_op_76*tmp_kernel_op_76) + (tmp_kernel_op_79*tmp_kernel_op_79))) + src_dof_4*tmp_kernel_op_203 + src_dof_5*tmp_kernel_op_204 + src_dof_6*tmp_kernel_op_205;
+             const real_t elMatVec_4 = src_dof_0*tmp_kernel_op_129 + src_dof_1*tmp_kernel_op_188 + src_dof_2*tmp_kernel_op_200 + src_dof_3*tmp_kernel_op_203 + src_dof_4*(tmp_kernel_op_11*((tmp_kernel_op_115*tmp_kernel_op_115) + (tmp_kernel_op_116*tmp_kernel_op_116)) + tmp_kernel_op_17*((tmp_kernel_op_118*tmp_kernel_op_118) + (tmp_kernel_op_119*tmp_kernel_op_119)) + tmp_kernel_op_23*((tmp_kernel_op_121*tmp_kernel_op_121) + (tmp_kernel_op_122*tmp_kernel_op_122)) + tmp_kernel_op_29*((tmp_kernel_op_124*tmp_kernel_op_124) + (tmp_kernel_op_125*tmp_kernel_op_125)) + tmp_kernel_op_35*((tmp_kernel_op_127*tmp_kernel_op_127) + (tmp_kernel_op_128*tmp_kernel_op_128)) + tmp_kernel_op_5*((tmp_kernel_op_112*tmp_kernel_op_112) + (tmp_kernel_op_113*tmp_kernel_op_113))) + src_dof_5*tmp_kernel_op_206 + src_dof_6*tmp_kernel_op_207;
+             const real_t elMatVec_5 = src_dof_0*tmp_kernel_op_148 + src_dof_1*tmp_kernel_op_189 + src_dof_2*tmp_kernel_op_201 + src_dof_3*tmp_kernel_op_204 + src_dof_4*tmp_kernel_op_206 + src_dof_5*(tmp_kernel_op_11*((tmp_kernel_op_134*tmp_kernel_op_134) + (tmp_kernel_op_135*tmp_kernel_op_135)) + tmp_kernel_op_17*((tmp_kernel_op_137*tmp_kernel_op_137) + (tmp_kernel_op_138*tmp_kernel_op_138)) + tmp_kernel_op_23*((tmp_kernel_op_140*tmp_kernel_op_140) + (tmp_kernel_op_141*tmp_kernel_op_141)) + tmp_kernel_op_29*((tmp_kernel_op_143*tmp_kernel_op_143) + (tmp_kernel_op_144*tmp_kernel_op_144)) + tmp_kernel_op_35*((tmp_kernel_op_146*tmp_kernel_op_146) + (tmp_kernel_op_147*tmp_kernel_op_147)) + tmp_kernel_op_5*((tmp_kernel_op_131*tmp_kernel_op_131) + (tmp_kernel_op_132*tmp_kernel_op_132))) + src_dof_6*tmp_kernel_op_208;
+             const real_t elMatVec_6 = src_dof_0*tmp_kernel_op_177 + src_dof_1*tmp_kernel_op_190 + src_dof_2*tmp_kernel_op_202 + src_dof_3*tmp_kernel_op_205 + src_dof_4*tmp_kernel_op_207 + src_dof_5*tmp_kernel_op_208 + src_dof_6*(tmp_kernel_op_11*((tmp_kernel_op_159*tmp_kernel_op_159) + (tmp_kernel_op_160*tmp_kernel_op_160)) + tmp_kernel_op_17*((tmp_kernel_op_163*tmp_kernel_op_163) + (tmp_kernel_op_164*tmp_kernel_op_164)) + tmp_kernel_op_23*((tmp_kernel_op_167*tmp_kernel_op_167) + (tmp_kernel_op_168*tmp_kernel_op_168)) + tmp_kernel_op_29*((tmp_kernel_op_171*tmp_kernel_op_171) + (tmp_kernel_op_172*tmp_kernel_op_172)) + tmp_kernel_op_35*((tmp_kernel_op_175*tmp_kernel_op_175) + (tmp_kernel_op_176*tmp_kernel_op_176)) + tmp_kernel_op_5*((tmp_kernel_op_153*tmp_kernel_op_153) + (tmp_kernel_op_156*tmp_kernel_op_156)));
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_3 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatVec_4 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_5 + _data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_6 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                }
+             }
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fbeacd5866ed2dd452ca430f8d290163e0fc1cec
--- /dev/null
+++ b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D.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.
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "../P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2PlusBubbleElementwiseDiffusion::computeInverseDiagonalOperatorValues_P2PlusBubbleElementwiseDiffusion_macro_2D( real_t * RESTRICT  _data_invDiag_, real_t * RESTRICT  _data_invDiag_Edge, real_t * RESTRICT  _data_invDiag_Vertex, 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 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 = jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE;
+       const real_t tmp_coords_jac_6_BLUE = 1.0 / (tmp_coords_jac_5_BLUE);
+       const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t abs_det_jac_affine_BLUE = abs(tmp_coords_jac_5_BLUE);
+       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 = jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY;
+       const real_t tmp_coords_jac_2_GRAY = 1.0 / (tmp_coords_jac_1_GRAY);
+       const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t abs_det_jac_affine_GRAY = abs(tmp_coords_jac_1_GRAY);
+       const real_t tmp_kernel_op_0 = 1.7837939636638596;
+       const real_t tmp_kernel_op_1 = 0.43241207267228088;
+       const real_t tmp_kernel_op_2 = tmp_kernel_op_0 + tmp_kernel_op_1 - 3.0;
+       const real_t tmp_kernel_op_3 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_4 = 0.36630485403908286;
+       const real_t tmp_kernel_op_5 = 3.2673902919218341;
+       const real_t tmp_kernel_op_6 = tmp_kernel_op_4 + tmp_kernel_op_5 - 3.0;
+       const real_t tmp_kernel_op_7 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_8 = 0.43241207267228088;
+       const real_t tmp_kernel_op_9 = 1.7837939636638596;
+       const real_t tmp_kernel_op_10 = tmp_kernel_op_8 + tmp_kernel_op_9 - 3.0;
+       const real_t tmp_kernel_op_11 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_12 = 3.2673902919218341;
+       const real_t tmp_kernel_op_13 = 0.36630485403908286;
+       const real_t tmp_kernel_op_14 = tmp_kernel_op_12 + tmp_kernel_op_13 - 3.0;
+       const real_t tmp_kernel_op_15 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_16 = 1.7837939636638596;
+       const real_t tmp_kernel_op_17 = 1.7837939636638596;
+       const real_t tmp_kernel_op_18 = tmp_kernel_op_16 + tmp_kernel_op_17 - 3.0;
+       const real_t tmp_kernel_op_19 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_20 = 0.36630485403908286;
+       const real_t tmp_kernel_op_21 = 0.36630485403908286;
+       const real_t tmp_kernel_op_22 = tmp_kernel_op_20 + tmp_kernel_op_21 - 3.0;
+       const real_t tmp_kernel_op_23 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_24 = (jac_affine_inv_0_0_GRAY*jac_affine_inv_0_0_GRAY);
+       const real_t tmp_kernel_op_25 = ((tmp_kernel_op_0 - 1.0)*(tmp_kernel_op_0 - 1.0));
+       const real_t tmp_kernel_op_26 = (jac_affine_inv_0_1_GRAY*jac_affine_inv_0_1_GRAY);
+       const real_t tmp_kernel_op_27 = ((tmp_kernel_op_4 - 1.0)*(tmp_kernel_op_4 - 1.0));
+       const real_t tmp_kernel_op_28 = ((tmp_kernel_op_8 - 1.0)*(tmp_kernel_op_8 - 1.0));
+       const real_t tmp_kernel_op_29 = ((tmp_kernel_op_12 - 1.0)*(tmp_kernel_op_12 - 1.0));
+       const real_t tmp_kernel_op_30 = ((tmp_kernel_op_16 - 1.0)*(tmp_kernel_op_16 - 1.0));
+       const real_t tmp_kernel_op_31 = ((tmp_kernel_op_20 - 1.0)*(tmp_kernel_op_20 - 1.0));
+       const real_t tmp_kernel_op_32 = (jac_affine_inv_1_0_GRAY*jac_affine_inv_1_0_GRAY);
+       const real_t tmp_kernel_op_33 = ((tmp_kernel_op_1 - 1.0)*(tmp_kernel_op_1 - 1.0));
+       const real_t tmp_kernel_op_34 = (jac_affine_inv_1_1_GRAY*jac_affine_inv_1_1_GRAY);
+       const real_t tmp_kernel_op_35 = ((tmp_kernel_op_5 - 1.0)*(tmp_kernel_op_5 - 1.0));
+       const real_t tmp_kernel_op_36 = ((tmp_kernel_op_9 - 1.0)*(tmp_kernel_op_9 - 1.0));
+       const real_t tmp_kernel_op_37 = ((tmp_kernel_op_13 - 1.0)*(tmp_kernel_op_13 - 1.0));
+       const real_t tmp_kernel_op_38 = ((tmp_kernel_op_17 - 1.0)*(tmp_kernel_op_17 - 1.0));
+       const real_t tmp_kernel_op_39 = ((tmp_kernel_op_21 - 1.0)*(tmp_kernel_op_21 - 1.0));
+       const real_t tmp_kernel_op_40 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_41 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_42 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_43 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_44 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_5;
+       const real_t tmp_kernel_op_45 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_4;
+       const real_t tmp_kernel_op_46 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_5;
+       const real_t tmp_kernel_op_47 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_4;
+       const real_t tmp_kernel_op_48 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_9;
+       const real_t tmp_kernel_op_49 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_50 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_9;
+       const real_t tmp_kernel_op_51 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_52 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_53 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_54 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_55 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_56 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_17;
+       const real_t tmp_kernel_op_57 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_16;
+       const real_t tmp_kernel_op_58 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_17;
+       const real_t tmp_kernel_op_59 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_16;
+       const real_t tmp_kernel_op_60 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_21;
+       const real_t tmp_kernel_op_61 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_62 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_21;
+       const real_t tmp_kernel_op_63 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_64 = -tmp_kernel_op_0 + 3.1351758546554382;
+       const real_t tmp_kernel_op_65 = -tmp_kernel_op_4 - 2.5347805838436681;
+       const real_t tmp_kernel_op_66 = -tmp_kernel_op_8 + 0.43241207267228088;
+       const real_t tmp_kernel_op_67 = -tmp_kernel_op_12 + 3.2673902919218341;
+       const real_t tmp_kernel_op_68 = -tmp_kernel_op_16 + 0.43241207267228088;
+       const real_t tmp_kernel_op_69 = -tmp_kernel_op_20 + 3.2673902919218341;
+       const real_t tmp_kernel_op_70 = -tmp_kernel_op_1 + 0.43241207267228088;
+       const real_t tmp_kernel_op_71 = -tmp_kernel_op_5 + 3.2673902919218341;
+       const real_t tmp_kernel_op_72 = -tmp_kernel_op_9 + 3.1351758546554382;
+       const real_t tmp_kernel_op_73 = -tmp_kernel_op_13 - 2.5347805838436681;
+       const real_t tmp_kernel_op_74 = -tmp_kernel_op_17 + 0.43241207267228088;
+       const real_t tmp_kernel_op_75 = -tmp_kernel_op_21 + 3.2673902919218341;
+       const real_t tmp_kernel_op_76 = jac_affine_inv_0_0_GRAY*27.0;
+       const int64_t tmp_kernel_op_77 = 0;
+       const real_t tmp_kernel_op_78 = jac_affine_inv_1_0_GRAY*27.0;
+       const real_t tmp_kernel_op_79 = 0.15066167873471437;
+       const real_t tmp_kernel_op_80 = jac_affine_inv_0_1_GRAY*27.0;
+       const real_t tmp_kernel_op_81 = jac_affine_inv_1_1_GRAY*27.0;
+       const real_t tmp_kernel_op_82 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_83 = -0.066417604867409372;
+       const real_t tmp_kernel_op_84 = 0.15066167873471437;
+       const int64_t tmp_kernel_op_85 = 0;
+       const real_t tmp_kernel_op_86 = -0.066417604867409372;
+       const real_t tmp_kernel_op_87 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_88 = -0.15066167873471437;
+       const real_t tmp_kernel_op_89 = -0.15066167873471437;
+       const real_t tmp_kernel_op_90 = 0.066417604867409386;
+       const real_t tmp_kernel_op_91 = 0.066417604867409386;
+       const real_t elMatDiag_0 = tmp_kernel_op_11*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_10)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_10)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_10)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_10 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_10))) + tmp_kernel_op_15*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14))) + tmp_kernel_op_19*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_18)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_18)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_18)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_18 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_18))) + tmp_kernel_op_23*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_22)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_22)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_22)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_22 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_22))) + tmp_kernel_op_3*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2))) + tmp_kernel_op_7*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_6)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_6)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_6)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_6 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_6)));
+       const real_t elMatDiag_1 = tmp_kernel_op_11*(tmp_kernel_op_24*tmp_kernel_op_28 + tmp_kernel_op_26*tmp_kernel_op_28) + tmp_kernel_op_15*(tmp_kernel_op_24*tmp_kernel_op_29 + tmp_kernel_op_26*tmp_kernel_op_29) + tmp_kernel_op_19*(tmp_kernel_op_24*tmp_kernel_op_30 + tmp_kernel_op_26*tmp_kernel_op_30) + tmp_kernel_op_23*(tmp_kernel_op_24*tmp_kernel_op_31 + tmp_kernel_op_26*tmp_kernel_op_31) + tmp_kernel_op_3*(tmp_kernel_op_24*tmp_kernel_op_25 + tmp_kernel_op_25*tmp_kernel_op_26) + tmp_kernel_op_7*(tmp_kernel_op_24*tmp_kernel_op_27 + tmp_kernel_op_26*tmp_kernel_op_27);
+       const real_t elMatDiag_2 = tmp_kernel_op_11*(tmp_kernel_op_32*tmp_kernel_op_36 + tmp_kernel_op_34*tmp_kernel_op_36) + tmp_kernel_op_15*(tmp_kernel_op_32*tmp_kernel_op_37 + tmp_kernel_op_34*tmp_kernel_op_37) + tmp_kernel_op_19*(tmp_kernel_op_32*tmp_kernel_op_38 + tmp_kernel_op_34*tmp_kernel_op_38) + tmp_kernel_op_23*(tmp_kernel_op_32*tmp_kernel_op_39 + tmp_kernel_op_34*tmp_kernel_op_39) + tmp_kernel_op_3*(tmp_kernel_op_32*tmp_kernel_op_33 + tmp_kernel_op_33*tmp_kernel_op_34) + tmp_kernel_op_7*(tmp_kernel_op_32*tmp_kernel_op_35 + tmp_kernel_op_34*tmp_kernel_op_35);
+       const real_t elMatDiag_3 = tmp_kernel_op_11*(((tmp_kernel_op_48 + tmp_kernel_op_49)*(tmp_kernel_op_48 + tmp_kernel_op_49)) + ((tmp_kernel_op_50 + tmp_kernel_op_51)*(tmp_kernel_op_50 + tmp_kernel_op_51))) + tmp_kernel_op_15*(((tmp_kernel_op_52 + tmp_kernel_op_53)*(tmp_kernel_op_52 + tmp_kernel_op_53)) + ((tmp_kernel_op_54 + tmp_kernel_op_55)*(tmp_kernel_op_54 + tmp_kernel_op_55))) + tmp_kernel_op_19*(((tmp_kernel_op_56 + tmp_kernel_op_57)*(tmp_kernel_op_56 + tmp_kernel_op_57)) + ((tmp_kernel_op_58 + tmp_kernel_op_59)*(tmp_kernel_op_58 + tmp_kernel_op_59))) + tmp_kernel_op_23*(((tmp_kernel_op_60 + tmp_kernel_op_61)*(tmp_kernel_op_60 + tmp_kernel_op_61)) + ((tmp_kernel_op_62 + tmp_kernel_op_63)*(tmp_kernel_op_62 + tmp_kernel_op_63))) + tmp_kernel_op_3*(((tmp_kernel_op_40 + tmp_kernel_op_41)*(tmp_kernel_op_40 + tmp_kernel_op_41)) + ((tmp_kernel_op_42 + tmp_kernel_op_43)*(tmp_kernel_op_42 + tmp_kernel_op_43))) + tmp_kernel_op_7*(((tmp_kernel_op_44 + tmp_kernel_op_45)*(tmp_kernel_op_44 + tmp_kernel_op_45)) + ((tmp_kernel_op_46 + tmp_kernel_op_47)*(tmp_kernel_op_46 + tmp_kernel_op_47)));
+       const real_t elMatDiag_4 = tmp_kernel_op_11*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_66 - tmp_kernel_op_48)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_66 - tmp_kernel_op_48)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_66 - tmp_kernel_op_50)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_66 - tmp_kernel_op_50))) + tmp_kernel_op_15*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_67 - tmp_kernel_op_52)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_67 - tmp_kernel_op_52)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_67 - tmp_kernel_op_54)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_67 - tmp_kernel_op_54))) + tmp_kernel_op_19*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_68 - tmp_kernel_op_56)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_68 - tmp_kernel_op_56)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_68 - tmp_kernel_op_58)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_68 - tmp_kernel_op_58))) + tmp_kernel_op_23*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_69 - tmp_kernel_op_60)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_69 - tmp_kernel_op_60)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_69 - tmp_kernel_op_62)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_69 - tmp_kernel_op_62))) + tmp_kernel_op_3*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_64 - tmp_kernel_op_40)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_64 - tmp_kernel_op_40)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_64 - tmp_kernel_op_42)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_64 - tmp_kernel_op_42))) + tmp_kernel_op_7*(((jac_affine_inv_1_0_GRAY*tmp_kernel_op_65 - tmp_kernel_op_44)*(jac_affine_inv_1_0_GRAY*tmp_kernel_op_65 - tmp_kernel_op_44)) + ((jac_affine_inv_1_1_GRAY*tmp_kernel_op_65 - tmp_kernel_op_46)*(jac_affine_inv_1_1_GRAY*tmp_kernel_op_65 - tmp_kernel_op_46)));
+       const real_t elMatDiag_5 = tmp_kernel_op_11*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_72 - tmp_kernel_op_49)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_72 - tmp_kernel_op_49)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_72 - tmp_kernel_op_51)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_72 - tmp_kernel_op_51))) + tmp_kernel_op_15*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_73 - tmp_kernel_op_53)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_73 - tmp_kernel_op_53)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_73 - tmp_kernel_op_55)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_73 - tmp_kernel_op_55))) + tmp_kernel_op_19*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_74 - tmp_kernel_op_57)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_74 - tmp_kernel_op_57)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_74 - tmp_kernel_op_59)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_74 - tmp_kernel_op_59))) + tmp_kernel_op_23*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_75 - tmp_kernel_op_61)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_75 - tmp_kernel_op_61)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_75 - tmp_kernel_op_63)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_75 - tmp_kernel_op_63))) + tmp_kernel_op_3*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_70 - tmp_kernel_op_41)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_70 - tmp_kernel_op_41)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_70 - tmp_kernel_op_43)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_70 - tmp_kernel_op_43))) + tmp_kernel_op_7*(((jac_affine_inv_0_0_GRAY*tmp_kernel_op_71 - tmp_kernel_op_45)*(jac_affine_inv_0_0_GRAY*tmp_kernel_op_71 - tmp_kernel_op_45)) + ((jac_affine_inv_0_1_GRAY*tmp_kernel_op_71 - tmp_kernel_op_47)*(jac_affine_inv_0_1_GRAY*tmp_kernel_op_71 - tmp_kernel_op_47)));
+       const real_t elMatDiag_6 = tmp_kernel_op_11*(((tmp_kernel_op_76*tmp_kernel_op_84 + tmp_kernel_op_78*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_76*tmp_kernel_op_84 + tmp_kernel_op_78*((real_t)(tmp_kernel_op_85)))) + ((tmp_kernel_op_80*tmp_kernel_op_84 + tmp_kernel_op_81*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_80*tmp_kernel_op_84 + tmp_kernel_op_81*((real_t)(tmp_kernel_op_85))))) + tmp_kernel_op_15*(((tmp_kernel_op_76*tmp_kernel_op_86 + tmp_kernel_op_78*tmp_kernel_op_87)*(tmp_kernel_op_76*tmp_kernel_op_86 + tmp_kernel_op_78*tmp_kernel_op_87)) + ((tmp_kernel_op_80*tmp_kernel_op_86 + tmp_kernel_op_81*tmp_kernel_op_87)*(tmp_kernel_op_80*tmp_kernel_op_86 + tmp_kernel_op_81*tmp_kernel_op_87))) + tmp_kernel_op_19*(((tmp_kernel_op_76*tmp_kernel_op_88 + tmp_kernel_op_78*tmp_kernel_op_89)*(tmp_kernel_op_76*tmp_kernel_op_88 + tmp_kernel_op_78*tmp_kernel_op_89)) + ((tmp_kernel_op_80*tmp_kernel_op_88 + tmp_kernel_op_81*tmp_kernel_op_89)*(tmp_kernel_op_80*tmp_kernel_op_88 + tmp_kernel_op_81*tmp_kernel_op_89))) + tmp_kernel_op_23*(((tmp_kernel_op_76*tmp_kernel_op_90 + tmp_kernel_op_78*tmp_kernel_op_91)*(tmp_kernel_op_76*tmp_kernel_op_90 + tmp_kernel_op_78*tmp_kernel_op_91)) + ((tmp_kernel_op_80*tmp_kernel_op_90 + tmp_kernel_op_81*tmp_kernel_op_91)*(tmp_kernel_op_80*tmp_kernel_op_90 + tmp_kernel_op_81*tmp_kernel_op_91))) + tmp_kernel_op_3*(((tmp_kernel_op_76*((real_t)(tmp_kernel_op_77)) + tmp_kernel_op_78*tmp_kernel_op_79)*(tmp_kernel_op_76*((real_t)(tmp_kernel_op_77)) + tmp_kernel_op_78*tmp_kernel_op_79)) + ((tmp_kernel_op_79*tmp_kernel_op_81 + tmp_kernel_op_80*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_kernel_op_81 + tmp_kernel_op_80*((real_t)(tmp_kernel_op_77))))) + tmp_kernel_op_7*(((tmp_kernel_op_76*tmp_kernel_op_82 + tmp_kernel_op_78*tmp_kernel_op_83)*(tmp_kernel_op_76*tmp_kernel_op_82 + tmp_kernel_op_78*tmp_kernel_op_83)) + ((tmp_kernel_op_80*tmp_kernel_op_82 + tmp_kernel_op_81*tmp_kernel_op_83)*(tmp_kernel_op_80*tmp_kernel_op_82 + tmp_kernel_op_81*tmp_kernel_op_83)));
+       const real_t tmp_moved_constant_0 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_1 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_2 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_3 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_4 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_5 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_6 = (jac_affine_inv_0_0_BLUE*jac_affine_inv_0_0_BLUE);
+       const real_t tmp_moved_constant_7 = (jac_affine_inv_0_1_BLUE*jac_affine_inv_0_1_BLUE);
+       const real_t tmp_moved_constant_8 = (jac_affine_inv_1_0_BLUE*jac_affine_inv_1_0_BLUE);
+       const real_t tmp_moved_constant_9 = (jac_affine_inv_1_1_BLUE*jac_affine_inv_1_1_BLUE);
+       const real_t tmp_moved_constant_10 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_11 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_12 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_13 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_14 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_5;
+       const real_t tmp_moved_constant_15 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_4;
+       const real_t tmp_moved_constant_16 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_5;
+       const real_t tmp_moved_constant_17 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_4;
+       const real_t tmp_moved_constant_18 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_9;
+       const real_t tmp_moved_constant_19 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_20 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_9;
+       const real_t tmp_moved_constant_21 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_22 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_23 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_24 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_25 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_26 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_17;
+       const real_t tmp_moved_constant_27 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_16;
+       const real_t tmp_moved_constant_28 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_17;
+       const real_t tmp_moved_constant_29 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_16;
+       const real_t tmp_moved_constant_30 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_21;
+       const real_t tmp_moved_constant_31 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_32 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_21;
+       const real_t tmp_moved_constant_33 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_34 = jac_affine_inv_0_0_BLUE*27.0;
+       const real_t tmp_moved_constant_35 = jac_affine_inv_1_0_BLUE*27.0;
+       const real_t tmp_moved_constant_36 = jac_affine_inv_0_1_BLUE*27.0;
+       const real_t tmp_moved_constant_37 = jac_affine_inv_1_1_BLUE*27.0;
+       const real_t tmp_moved_constant_38 = tmp_moved_constant_0*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2))) + tmp_moved_constant_1*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_6)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_6)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_6)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_6 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_6))) + tmp_moved_constant_2*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_10)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_10)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_10)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_10 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_10))) + tmp_moved_constant_3*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14))) + tmp_moved_constant_4*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_18)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_18)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_18)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_18 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_18))) + tmp_moved_constant_5*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_22)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_22)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_22)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_22 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_22)));
+       const real_t tmp_moved_constant_39 = tmp_moved_constant_0*(tmp_kernel_op_25*tmp_moved_constant_6 + tmp_kernel_op_25*tmp_moved_constant_7) + tmp_moved_constant_1*(tmp_kernel_op_27*tmp_moved_constant_6 + tmp_kernel_op_27*tmp_moved_constant_7) + tmp_moved_constant_2*(tmp_kernel_op_28*tmp_moved_constant_6 + tmp_kernel_op_28*tmp_moved_constant_7) + tmp_moved_constant_3*(tmp_kernel_op_29*tmp_moved_constant_6 + tmp_kernel_op_29*tmp_moved_constant_7) + tmp_moved_constant_4*(tmp_kernel_op_30*tmp_moved_constant_6 + tmp_kernel_op_30*tmp_moved_constant_7) + tmp_moved_constant_5*(tmp_kernel_op_31*tmp_moved_constant_6 + tmp_kernel_op_31*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_40 = tmp_moved_constant_0*(tmp_kernel_op_33*tmp_moved_constant_8 + tmp_kernel_op_33*tmp_moved_constant_9) + tmp_moved_constant_1*(tmp_kernel_op_35*tmp_moved_constant_8 + tmp_kernel_op_35*tmp_moved_constant_9) + tmp_moved_constant_2*(tmp_kernel_op_36*tmp_moved_constant_8 + tmp_kernel_op_36*tmp_moved_constant_9) + tmp_moved_constant_3*(tmp_kernel_op_37*tmp_moved_constant_8 + tmp_kernel_op_37*tmp_moved_constant_9) + tmp_moved_constant_4*(tmp_kernel_op_38*tmp_moved_constant_8 + tmp_kernel_op_38*tmp_moved_constant_9) + tmp_moved_constant_5*(tmp_kernel_op_39*tmp_moved_constant_8 + tmp_kernel_op_39*tmp_moved_constant_9);
+       const real_t tmp_moved_constant_41 = tmp_moved_constant_0*(((tmp_moved_constant_10 + tmp_moved_constant_11)*(tmp_moved_constant_10 + tmp_moved_constant_11)) + ((tmp_moved_constant_12 + tmp_moved_constant_13)*(tmp_moved_constant_12 + tmp_moved_constant_13))) + tmp_moved_constant_1*(((tmp_moved_constant_14 + tmp_moved_constant_15)*(tmp_moved_constant_14 + tmp_moved_constant_15)) + ((tmp_moved_constant_16 + tmp_moved_constant_17)*(tmp_moved_constant_16 + tmp_moved_constant_17))) + tmp_moved_constant_2*(((tmp_moved_constant_18 + tmp_moved_constant_19)*(tmp_moved_constant_18 + tmp_moved_constant_19)) + ((tmp_moved_constant_20 + tmp_moved_constant_21)*(tmp_moved_constant_20 + tmp_moved_constant_21))) + tmp_moved_constant_3*(((tmp_moved_constant_22 + tmp_moved_constant_23)*(tmp_moved_constant_22 + tmp_moved_constant_23)) + ((tmp_moved_constant_24 + tmp_moved_constant_25)*(tmp_moved_constant_24 + tmp_moved_constant_25))) + tmp_moved_constant_4*(((tmp_moved_constant_26 + tmp_moved_constant_27)*(tmp_moved_constant_26 + tmp_moved_constant_27)) + ((tmp_moved_constant_28 + tmp_moved_constant_29)*(tmp_moved_constant_28 + tmp_moved_constant_29))) + tmp_moved_constant_5*(((tmp_moved_constant_30 + tmp_moved_constant_31)*(tmp_moved_constant_30 + tmp_moved_constant_31)) + ((tmp_moved_constant_32 + tmp_moved_constant_33)*(tmp_moved_constant_32 + tmp_moved_constant_33)));
+       const real_t tmp_moved_constant_42 = tmp_moved_constant_0*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_64 - tmp_moved_constant_10)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_64 - tmp_moved_constant_10)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_64 - tmp_moved_constant_12)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_64 - tmp_moved_constant_12))) + tmp_moved_constant_1*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_65 - tmp_moved_constant_14)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_65 - tmp_moved_constant_14)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_65 - tmp_moved_constant_16)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_65 - tmp_moved_constant_16))) + tmp_moved_constant_2*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_66 - tmp_moved_constant_18)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_66 - tmp_moved_constant_18)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_66 - tmp_moved_constant_20)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_66 - tmp_moved_constant_20))) + tmp_moved_constant_3*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_67 - tmp_moved_constant_22)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_67 - tmp_moved_constant_22)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_67 - tmp_moved_constant_24)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_67 - tmp_moved_constant_24))) + tmp_moved_constant_4*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_68 - tmp_moved_constant_26)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_68 - tmp_moved_constant_26)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_68 - tmp_moved_constant_28)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_68 - tmp_moved_constant_28))) + tmp_moved_constant_5*(((jac_affine_inv_1_0_BLUE*tmp_kernel_op_69 - tmp_moved_constant_30)*(jac_affine_inv_1_0_BLUE*tmp_kernel_op_69 - tmp_moved_constant_30)) + ((jac_affine_inv_1_1_BLUE*tmp_kernel_op_69 - tmp_moved_constant_32)*(jac_affine_inv_1_1_BLUE*tmp_kernel_op_69 - tmp_moved_constant_32)));
+       const real_t tmp_moved_constant_43 = tmp_moved_constant_0*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_70 - tmp_moved_constant_11)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_70 - tmp_moved_constant_11)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_70 - tmp_moved_constant_13)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_70 - tmp_moved_constant_13))) + tmp_moved_constant_1*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_71 - tmp_moved_constant_15)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_71 - tmp_moved_constant_15)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_71 - tmp_moved_constant_17)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_71 - tmp_moved_constant_17))) + tmp_moved_constant_2*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_72 - tmp_moved_constant_19)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_72 - tmp_moved_constant_19)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_72 - tmp_moved_constant_21)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_72 - tmp_moved_constant_21))) + tmp_moved_constant_3*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_73 - tmp_moved_constant_23)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_73 - tmp_moved_constant_23)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_73 - tmp_moved_constant_25)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_73 - tmp_moved_constant_25))) + tmp_moved_constant_4*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_74 - tmp_moved_constant_27)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_74 - tmp_moved_constant_27)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_74 - tmp_moved_constant_29)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_74 - tmp_moved_constant_29))) + tmp_moved_constant_5*(((jac_affine_inv_0_0_BLUE*tmp_kernel_op_75 - tmp_moved_constant_31)*(jac_affine_inv_0_0_BLUE*tmp_kernel_op_75 - tmp_moved_constant_31)) + ((jac_affine_inv_0_1_BLUE*tmp_kernel_op_75 - tmp_moved_constant_33)*(jac_affine_inv_0_1_BLUE*tmp_kernel_op_75 - tmp_moved_constant_33)));
+       const real_t tmp_moved_constant_44 = tmp_moved_constant_0*(((tmp_kernel_op_79*tmp_moved_constant_35 + tmp_moved_constant_34*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_moved_constant_35 + tmp_moved_constant_34*((real_t)(tmp_kernel_op_77)))) + ((tmp_kernel_op_79*tmp_moved_constant_37 + tmp_moved_constant_36*((real_t)(tmp_kernel_op_77)))*(tmp_kernel_op_79*tmp_moved_constant_37 + tmp_moved_constant_36*((real_t)(tmp_kernel_op_77))))) + tmp_moved_constant_1*(((tmp_kernel_op_82*tmp_moved_constant_34 + tmp_kernel_op_83*tmp_moved_constant_35)*(tmp_kernel_op_82*tmp_moved_constant_34 + tmp_kernel_op_83*tmp_moved_constant_35)) + ((tmp_kernel_op_82*tmp_moved_constant_36 + tmp_kernel_op_83*tmp_moved_constant_37)*(tmp_kernel_op_82*tmp_moved_constant_36 + tmp_kernel_op_83*tmp_moved_constant_37))) + tmp_moved_constant_2*(((tmp_kernel_op_84*tmp_moved_constant_34 + tmp_moved_constant_35*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_84*tmp_moved_constant_34 + tmp_moved_constant_35*((real_t)(tmp_kernel_op_85)))) + ((tmp_kernel_op_84*tmp_moved_constant_36 + tmp_moved_constant_37*((real_t)(tmp_kernel_op_85)))*(tmp_kernel_op_84*tmp_moved_constant_36 + tmp_moved_constant_37*((real_t)(tmp_kernel_op_85))))) + tmp_moved_constant_3*(((tmp_kernel_op_86*tmp_moved_constant_34 + tmp_kernel_op_87*tmp_moved_constant_35)*(tmp_kernel_op_86*tmp_moved_constant_34 + tmp_kernel_op_87*tmp_moved_constant_35)) + ((tmp_kernel_op_86*tmp_moved_constant_36 + tmp_kernel_op_87*tmp_moved_constant_37)*(tmp_kernel_op_86*tmp_moved_constant_36 + tmp_kernel_op_87*tmp_moved_constant_37))) + tmp_moved_constant_4*(((tmp_kernel_op_88*tmp_moved_constant_34 + tmp_kernel_op_89*tmp_moved_constant_35)*(tmp_kernel_op_88*tmp_moved_constant_34 + tmp_kernel_op_89*tmp_moved_constant_35)) + ((tmp_kernel_op_88*tmp_moved_constant_36 + tmp_kernel_op_89*tmp_moved_constant_37)*(tmp_kernel_op_88*tmp_moved_constant_36 + tmp_kernel_op_89*tmp_moved_constant_37))) + tmp_moved_constant_5*(((tmp_kernel_op_90*tmp_moved_constant_34 + tmp_kernel_op_91*tmp_moved_constant_35)*(tmp_kernel_op_90*tmp_moved_constant_34 + tmp_kernel_op_91*tmp_moved_constant_35)) + ((tmp_kernel_op_90*tmp_moved_constant_36 + tmp_kernel_op_91*tmp_moved_constant_37)*(tmp_kernel_op_90*tmp_moved_constant_36 + tmp_kernel_op_91*tmp_moved_constant_37)));
+       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 int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_6 + _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                }
+             }
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = tmp_moved_constant_38 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_39 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = tmp_moved_constant_40 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1];
+                   _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = tmp_moved_constant_41 + _data_invDiag_Edge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1] = tmp_moved_constant_42 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_43 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = tmp_moved_constant_44 + _data_invDiag_[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                }
+             }
+          }
+          for (int64_t ctr_0 = -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
+          {
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_0 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatDiag_1 + _data_invDiag_Vertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1];
+                   _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatDiag_2 + _data_invDiag_Vertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_3 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))] = elMatDiag_4 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))];
+                   _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_5 + _data_invDiag_Edge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                   _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatDiag_6 + _data_invDiag_[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))];
+                }
+             }
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg
diff --git a/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8a4b3dcd3d3bed4fcb96e1c5b5791d7b4e1d4c1d
--- /dev/null
+++ b/operators/diffusion/noarch/P2PlusBubbleElementwiseDiffusion_toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D.cpp
@@ -0,0 +1,866 @@
+/*
+* 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 "../P2PlusBubbleElementwiseDiffusion.hpp"
+
+#define FUNC_PREFIX  
+
+namespace hyteg {
+
+namespace operatorgeneration {
+
+void P2PlusBubbleElementwiseDiffusion::toMatrix_P2PlusBubbleElementwiseDiffusion_macro_2D( idx_t * RESTRICT  _data_dst, idx_t * RESTRICT  _data_dstEdge, idx_t * RESTRICT  _data_dstVertex, idx_t * RESTRICT  _data_src, idx_t * RESTRICT  _data_srcEdge, idx_t * RESTRICT  _data_srcVertex, 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 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 = jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE;
+       const real_t tmp_coords_jac_6_BLUE = 1.0 / (tmp_coords_jac_5_BLUE);
+       const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_6_BLUE;
+       const real_t abs_det_jac_affine_BLUE = abs(tmp_coords_jac_5_BLUE);
+       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 = jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY;
+       const real_t tmp_coords_jac_2_GRAY = 1.0 / (tmp_coords_jac_1_GRAY);
+       const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_2_GRAY;
+       const real_t abs_det_jac_affine_GRAY = abs(tmp_coords_jac_1_GRAY);
+       const real_t tmp_kernel_op_0 = 1.7837939636638596;
+       const real_t tmp_kernel_op_1 = 0.43241207267228088;
+       const real_t tmp_kernel_op_2 = tmp_kernel_op_0 + tmp_kernel_op_1 - 3.0;
+       const real_t tmp_kernel_op_3 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_4 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_2 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_2;
+       const real_t tmp_kernel_op_5 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_6 = 0.36630485403908286;
+       const real_t tmp_kernel_op_7 = 3.2673902919218341;
+       const real_t tmp_kernel_op_8 = tmp_kernel_op_6 + tmp_kernel_op_7 - 3.0;
+       const real_t tmp_kernel_op_9 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_10 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_8 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_8;
+       const real_t tmp_kernel_op_11 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_12 = 0.43241207267228088;
+       const real_t tmp_kernel_op_13 = 1.7837939636638596;
+       const real_t tmp_kernel_op_14 = tmp_kernel_op_12 + tmp_kernel_op_13 - 3.0;
+       const real_t tmp_kernel_op_15 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_16 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_14 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_14;
+       const real_t tmp_kernel_op_17 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_18 = 3.2673902919218341;
+       const real_t tmp_kernel_op_19 = 0.36630485403908286;
+       const real_t tmp_kernel_op_20 = tmp_kernel_op_18 + tmp_kernel_op_19 - 3.0;
+       const real_t tmp_kernel_op_21 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_22 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_20 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_20;
+       const real_t tmp_kernel_op_23 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_24 = 1.7837939636638596;
+       const real_t tmp_kernel_op_25 = 1.7837939636638596;
+       const real_t tmp_kernel_op_26 = tmp_kernel_op_24 + tmp_kernel_op_25 - 3.0;
+       const real_t tmp_kernel_op_27 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_28 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_26 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_26;
+       const real_t tmp_kernel_op_29 = abs_det_jac_affine_GRAY*0.11169079483900581;
+       const real_t tmp_kernel_op_30 = 0.36630485403908286;
+       const real_t tmp_kernel_op_31 = 0.36630485403908286;
+       const real_t tmp_kernel_op_32 = tmp_kernel_op_30 + tmp_kernel_op_31 - 3.0;
+       const real_t tmp_kernel_op_33 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_0_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_34 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_32 + jac_affine_inv_1_1_GRAY*tmp_kernel_op_32;
+       const real_t tmp_kernel_op_35 = abs_det_jac_affine_GRAY*0.054975871827660949;
+       const real_t tmp_kernel_op_36 = tmp_kernel_op_0 - 1.0;
+       const real_t tmp_kernel_op_37 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_38 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_36;
+       const real_t tmp_kernel_op_39 = tmp_kernel_op_6 - 1.0;
+       const real_t tmp_kernel_op_40 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_41 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_39;
+       const real_t tmp_kernel_op_42 = tmp_kernel_op_12 - 1.0;
+       const real_t tmp_kernel_op_43 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_44 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_42;
+       const real_t tmp_kernel_op_45 = tmp_kernel_op_18 - 1.0;
+       const real_t tmp_kernel_op_46 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_47 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_45;
+       const real_t tmp_kernel_op_48 = tmp_kernel_op_24 - 1.0;
+       const real_t tmp_kernel_op_49 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_50 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_48;
+       const real_t tmp_kernel_op_51 = tmp_kernel_op_30 - 1.0;
+       const real_t tmp_kernel_op_52 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_53 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_51;
+       const real_t tmp_kernel_op_54 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_41 + tmp_kernel_op_40*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_43 + tmp_kernel_op_16*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_46 + tmp_kernel_op_22*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_49 + tmp_kernel_op_28*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_52 + tmp_kernel_op_34*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_37 + tmp_kernel_op_38*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_55 = tmp_kernel_op_1 - 1.0;
+       const real_t tmp_kernel_op_56 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_57 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_55;
+       const real_t tmp_kernel_op_58 = tmp_kernel_op_7 - 1.0;
+       const real_t tmp_kernel_op_59 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_60 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_58;
+       const real_t tmp_kernel_op_61 = tmp_kernel_op_13 - 1.0;
+       const real_t tmp_kernel_op_62 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_63 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_61;
+       const real_t tmp_kernel_op_64 = tmp_kernel_op_19 - 1.0;
+       const real_t tmp_kernel_op_65 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_66 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_64;
+       const real_t tmp_kernel_op_67 = tmp_kernel_op_25 - 1.0;
+       const real_t tmp_kernel_op_68 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_69 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_67;
+       const real_t tmp_kernel_op_70 = tmp_kernel_op_31 - 1.0;
+       const real_t tmp_kernel_op_71 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_72 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_70;
+       const real_t tmp_kernel_op_73 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_60 + tmp_kernel_op_59*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_62 + tmp_kernel_op_16*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_65 + tmp_kernel_op_22*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_27*tmp_kernel_op_68 + tmp_kernel_op_28*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_33*tmp_kernel_op_71 + tmp_kernel_op_34*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_56 + tmp_kernel_op_4*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_74 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_75 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_76 = tmp_kernel_op_74 + tmp_kernel_op_75;
+       const real_t tmp_kernel_op_77 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_1;
+       const real_t tmp_kernel_op_78 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_0;
+       const real_t tmp_kernel_op_79 = tmp_kernel_op_77 + tmp_kernel_op_78;
+       const real_t tmp_kernel_op_80 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_81 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_82 = tmp_kernel_op_80 + tmp_kernel_op_81;
+       const real_t tmp_kernel_op_83 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_7;
+       const real_t tmp_kernel_op_84 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_6;
+       const real_t tmp_kernel_op_85 = tmp_kernel_op_83 + tmp_kernel_op_84;
+       const real_t tmp_kernel_op_86 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_87 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_88 = tmp_kernel_op_86 + tmp_kernel_op_87;
+       const real_t tmp_kernel_op_89 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_13;
+       const real_t tmp_kernel_op_90 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_12;
+       const real_t tmp_kernel_op_91 = tmp_kernel_op_89 + tmp_kernel_op_90;
+       const real_t tmp_kernel_op_92 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_93 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_94 = tmp_kernel_op_92 + tmp_kernel_op_93;
+       const real_t tmp_kernel_op_95 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_19;
+       const real_t tmp_kernel_op_96 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_18;
+       const real_t tmp_kernel_op_97 = tmp_kernel_op_95 + tmp_kernel_op_96;
+       const real_t tmp_kernel_op_98 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_99 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_100 = tmp_kernel_op_98 + tmp_kernel_op_99;
+       const real_t tmp_kernel_op_101 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_25;
+       const real_t tmp_kernel_op_102 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_24;
+       const real_t tmp_kernel_op_103 = tmp_kernel_op_101 + tmp_kernel_op_102;
+       const real_t tmp_kernel_op_104 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_105 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_106 = tmp_kernel_op_104 + tmp_kernel_op_105;
+       const real_t tmp_kernel_op_107 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_31;
+       const real_t tmp_kernel_op_108 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_30;
+       const real_t tmp_kernel_op_109 = tmp_kernel_op_107 + tmp_kernel_op_108;
+       const real_t tmp_kernel_op_110 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_85 + tmp_kernel_op_82*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_88 + tmp_kernel_op_16*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_21*tmp_kernel_op_94 + tmp_kernel_op_22*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_27 + tmp_kernel_op_103*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_33 + tmp_kernel_op_109*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_3*tmp_kernel_op_76 + tmp_kernel_op_4*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_111 = -tmp_kernel_op_0 + 3.1351758546554382;
+       const real_t tmp_kernel_op_112 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_111 - tmp_kernel_op_74;
+       const real_t tmp_kernel_op_113 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_111 - tmp_kernel_op_77;
+       const real_t tmp_kernel_op_114 = -tmp_kernel_op_6 - 2.5347805838436681;
+       const real_t tmp_kernel_op_115 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_114 - tmp_kernel_op_80;
+       const real_t tmp_kernel_op_116 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_114 - tmp_kernel_op_83;
+       const real_t tmp_kernel_op_117 = -tmp_kernel_op_12 + 0.43241207267228088;
+       const real_t tmp_kernel_op_118 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_117 - tmp_kernel_op_86;
+       const real_t tmp_kernel_op_119 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_117 - tmp_kernel_op_89;
+       const real_t tmp_kernel_op_120 = -tmp_kernel_op_18 + 3.2673902919218341;
+       const real_t tmp_kernel_op_121 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_120 - tmp_kernel_op_92;
+       const real_t tmp_kernel_op_122 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_120 - tmp_kernel_op_95;
+       const real_t tmp_kernel_op_123 = -tmp_kernel_op_24 + 0.43241207267228088;
+       const real_t tmp_kernel_op_124 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_123 - tmp_kernel_op_98;
+       const real_t tmp_kernel_op_125 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_123 - tmp_kernel_op_101;
+       const real_t tmp_kernel_op_126 = -tmp_kernel_op_30 + 3.2673902919218341;
+       const real_t tmp_kernel_op_127 = jac_affine_inv_1_0_GRAY*tmp_kernel_op_126 - tmp_kernel_op_104;
+       const real_t tmp_kernel_op_128 = jac_affine_inv_1_1_GRAY*tmp_kernel_op_126 - tmp_kernel_op_107;
+       const real_t tmp_kernel_op_129 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_116 + tmp_kernel_op_115*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_15 + tmp_kernel_op_119*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_21 + tmp_kernel_op_122*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_27 + tmp_kernel_op_125*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_33 + tmp_kernel_op_128*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_3 + tmp_kernel_op_113*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_130 = -tmp_kernel_op_1 + 0.43241207267228088;
+       const real_t tmp_kernel_op_131 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_130 - tmp_kernel_op_75;
+       const real_t tmp_kernel_op_132 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_130 - tmp_kernel_op_78;
+       const real_t tmp_kernel_op_133 = -tmp_kernel_op_7 + 3.2673902919218341;
+       const real_t tmp_kernel_op_134 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_133 - tmp_kernel_op_81;
+       const real_t tmp_kernel_op_135 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_133 - tmp_kernel_op_84;
+       const real_t tmp_kernel_op_136 = -tmp_kernel_op_13 + 3.1351758546554382;
+       const real_t tmp_kernel_op_137 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_136 - tmp_kernel_op_87;
+       const real_t tmp_kernel_op_138 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_136 - tmp_kernel_op_90;
+       const real_t tmp_kernel_op_139 = -tmp_kernel_op_19 - 2.5347805838436681;
+       const real_t tmp_kernel_op_140 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_139 - tmp_kernel_op_93;
+       const real_t tmp_kernel_op_141 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_139 - tmp_kernel_op_96;
+       const real_t tmp_kernel_op_142 = -tmp_kernel_op_25 + 0.43241207267228088;
+       const real_t tmp_kernel_op_143 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_142 - tmp_kernel_op_99;
+       const real_t tmp_kernel_op_144 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_142 - tmp_kernel_op_102;
+       const real_t tmp_kernel_op_145 = -tmp_kernel_op_31 + 3.2673902919218341;
+       const real_t tmp_kernel_op_146 = jac_affine_inv_0_0_GRAY*tmp_kernel_op_145 - tmp_kernel_op_105;
+       const real_t tmp_kernel_op_147 = jac_affine_inv_0_1_GRAY*tmp_kernel_op_145 - tmp_kernel_op_108;
+       const real_t tmp_kernel_op_148 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_135 + tmp_kernel_op_134*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_15 + tmp_kernel_op_138*tmp_kernel_op_16) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_21 + tmp_kernel_op_141*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_27 + tmp_kernel_op_144*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_33 + tmp_kernel_op_147*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_3 + tmp_kernel_op_132*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_149 = jac_affine_inv_0_0_GRAY*27.0;
+       const int64_t tmp_kernel_op_150 = 0;
+       const real_t tmp_kernel_op_151 = jac_affine_inv_1_0_GRAY*27.0;
+       const real_t tmp_kernel_op_152 = 0.15066167873471437;
+       const real_t tmp_kernel_op_153 = tmp_kernel_op_149*((real_t)(tmp_kernel_op_150)) + tmp_kernel_op_151*tmp_kernel_op_152;
+       const real_t tmp_kernel_op_154 = jac_affine_inv_0_1_GRAY*27.0;
+       const real_t tmp_kernel_op_155 = jac_affine_inv_1_1_GRAY*27.0;
+       const real_t tmp_kernel_op_156 = tmp_kernel_op_152*tmp_kernel_op_155 + tmp_kernel_op_154*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_kernel_op_157 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_158 = -0.066417604867409372;
+       const real_t tmp_kernel_op_159 = tmp_kernel_op_149*tmp_kernel_op_157 + tmp_kernel_op_151*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_160 = tmp_kernel_op_154*tmp_kernel_op_157 + tmp_kernel_op_155*tmp_kernel_op_158;
+       const real_t tmp_kernel_op_161 = 0.15066167873471437;
+       const int64_t tmp_kernel_op_162 = 0;
+       const real_t tmp_kernel_op_163 = tmp_kernel_op_149*tmp_kernel_op_161 + tmp_kernel_op_151*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_164 = tmp_kernel_op_154*tmp_kernel_op_161 + tmp_kernel_op_155*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_kernel_op_165 = -0.066417604867409372;
+       const real_t tmp_kernel_op_166 = 4.5344149156604147e-17;
+       const real_t tmp_kernel_op_167 = tmp_kernel_op_149*tmp_kernel_op_165 + tmp_kernel_op_151*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_168 = tmp_kernel_op_154*tmp_kernel_op_165 + tmp_kernel_op_155*tmp_kernel_op_166;
+       const real_t tmp_kernel_op_169 = -0.15066167873471437;
+       const real_t tmp_kernel_op_170 = -0.15066167873471437;
+       const real_t tmp_kernel_op_171 = tmp_kernel_op_149*tmp_kernel_op_169 + tmp_kernel_op_151*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_172 = tmp_kernel_op_154*tmp_kernel_op_169 + tmp_kernel_op_155*tmp_kernel_op_170;
+       const real_t tmp_kernel_op_173 = 0.066417604867409386;
+       const real_t tmp_kernel_op_174 = 0.066417604867409386;
+       const real_t tmp_kernel_op_175 = tmp_kernel_op_149*tmp_kernel_op_173 + tmp_kernel_op_151*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_176 = tmp_kernel_op_154*tmp_kernel_op_173 + tmp_kernel_op_155*tmp_kernel_op_174;
+       const real_t tmp_kernel_op_177 = tmp_kernel_op_11*(tmp_kernel_op_10*tmp_kernel_op_160 + tmp_kernel_op_159*tmp_kernel_op_9) + tmp_kernel_op_17*(tmp_kernel_op_15*tmp_kernel_op_163 + tmp_kernel_op_16*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_21 + tmp_kernel_op_168*tmp_kernel_op_22) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_27 + tmp_kernel_op_172*tmp_kernel_op_28) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_33 + tmp_kernel_op_176*tmp_kernel_op_34) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_3 + tmp_kernel_op_156*tmp_kernel_op_4);
+       const real_t tmp_kernel_op_178 = (jac_affine_inv_0_0_GRAY*jac_affine_inv_0_0_GRAY);
+       const real_t tmp_kernel_op_179 = (tmp_kernel_op_36*tmp_kernel_op_36);
+       const real_t tmp_kernel_op_180 = (jac_affine_inv_0_1_GRAY*jac_affine_inv_0_1_GRAY);
+       const real_t tmp_kernel_op_181 = (tmp_kernel_op_39*tmp_kernel_op_39);
+       const real_t tmp_kernel_op_182 = (tmp_kernel_op_42*tmp_kernel_op_42);
+       const real_t tmp_kernel_op_183 = (tmp_kernel_op_45*tmp_kernel_op_45);
+       const real_t tmp_kernel_op_184 = (tmp_kernel_op_48*tmp_kernel_op_48);
+       const real_t tmp_kernel_op_185 = (tmp_kernel_op_51*tmp_kernel_op_51);
+       const real_t tmp_kernel_op_186 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_59 + tmp_kernel_op_41*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_62 + tmp_kernel_op_44*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_65 + tmp_kernel_op_47*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_49*tmp_kernel_op_68 + tmp_kernel_op_50*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_52*tmp_kernel_op_71 + tmp_kernel_op_53*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_56 + tmp_kernel_op_38*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_187 = tmp_kernel_op_11*(tmp_kernel_op_40*tmp_kernel_op_82 + tmp_kernel_op_41*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_43*tmp_kernel_op_88 + tmp_kernel_op_44*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_46*tmp_kernel_op_94 + tmp_kernel_op_47*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_49 + tmp_kernel_op_103*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_52 + tmp_kernel_op_109*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_37*tmp_kernel_op_76 + tmp_kernel_op_38*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_188 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_40 + tmp_kernel_op_116*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_43 + tmp_kernel_op_119*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_46 + tmp_kernel_op_122*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_49 + tmp_kernel_op_125*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_52 + tmp_kernel_op_128*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_37 + tmp_kernel_op_113*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_189 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_40 + tmp_kernel_op_135*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_43 + tmp_kernel_op_138*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_46 + tmp_kernel_op_141*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_49 + tmp_kernel_op_144*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_52 + tmp_kernel_op_147*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_37 + tmp_kernel_op_132*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_190 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_40 + tmp_kernel_op_160*tmp_kernel_op_41) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_43 + tmp_kernel_op_164*tmp_kernel_op_44) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_46 + tmp_kernel_op_168*tmp_kernel_op_47) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_49 + tmp_kernel_op_172*tmp_kernel_op_50) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_52 + tmp_kernel_op_176*tmp_kernel_op_53) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_37 + tmp_kernel_op_156*tmp_kernel_op_38);
+       const real_t tmp_kernel_op_191 = (jac_affine_inv_1_0_GRAY*jac_affine_inv_1_0_GRAY);
+       const real_t tmp_kernel_op_192 = (tmp_kernel_op_55*tmp_kernel_op_55);
+       const real_t tmp_kernel_op_193 = (jac_affine_inv_1_1_GRAY*jac_affine_inv_1_1_GRAY);
+       const real_t tmp_kernel_op_194 = (tmp_kernel_op_58*tmp_kernel_op_58);
+       const real_t tmp_kernel_op_195 = (tmp_kernel_op_61*tmp_kernel_op_61);
+       const real_t tmp_kernel_op_196 = (tmp_kernel_op_64*tmp_kernel_op_64);
+       const real_t tmp_kernel_op_197 = (tmp_kernel_op_67*tmp_kernel_op_67);
+       const real_t tmp_kernel_op_198 = (tmp_kernel_op_70*tmp_kernel_op_70);
+       const real_t tmp_kernel_op_199 = tmp_kernel_op_11*(tmp_kernel_op_59*tmp_kernel_op_82 + tmp_kernel_op_60*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_62*tmp_kernel_op_88 + tmp_kernel_op_63*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_65*tmp_kernel_op_94 + tmp_kernel_op_66*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_68 + tmp_kernel_op_103*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_71 + tmp_kernel_op_109*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_56*tmp_kernel_op_76 + tmp_kernel_op_57*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_200 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_59 + tmp_kernel_op_116*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_62 + tmp_kernel_op_119*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_65 + tmp_kernel_op_122*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_68 + tmp_kernel_op_125*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_71 + tmp_kernel_op_128*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_56 + tmp_kernel_op_113*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_201 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_59 + tmp_kernel_op_135*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_62 + tmp_kernel_op_138*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_65 + tmp_kernel_op_141*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_68 + tmp_kernel_op_144*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_71 + tmp_kernel_op_147*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_56 + tmp_kernel_op_132*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_202 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_59 + tmp_kernel_op_160*tmp_kernel_op_60) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_62 + tmp_kernel_op_164*tmp_kernel_op_63) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_65 + tmp_kernel_op_168*tmp_kernel_op_66) + tmp_kernel_op_29*(tmp_kernel_op_171*tmp_kernel_op_68 + tmp_kernel_op_172*tmp_kernel_op_69) + tmp_kernel_op_35*(tmp_kernel_op_175*tmp_kernel_op_71 + tmp_kernel_op_176*tmp_kernel_op_72) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_56 + tmp_kernel_op_156*tmp_kernel_op_57);
+       const real_t tmp_kernel_op_203 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_82 + tmp_kernel_op_116*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_88 + tmp_kernel_op_119*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_94 + tmp_kernel_op_122*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_124 + tmp_kernel_op_103*tmp_kernel_op_125) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_127 + tmp_kernel_op_109*tmp_kernel_op_128) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_76 + tmp_kernel_op_113*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_204 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_82 + tmp_kernel_op_135*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_88 + tmp_kernel_op_138*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_94 + tmp_kernel_op_141*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_143 + tmp_kernel_op_103*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_146 + tmp_kernel_op_109*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_76 + tmp_kernel_op_132*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_205 = tmp_kernel_op_11*(tmp_kernel_op_159*tmp_kernel_op_82 + tmp_kernel_op_160*tmp_kernel_op_85) + tmp_kernel_op_17*(tmp_kernel_op_163*tmp_kernel_op_88 + tmp_kernel_op_164*tmp_kernel_op_91) + tmp_kernel_op_23*(tmp_kernel_op_167*tmp_kernel_op_94 + tmp_kernel_op_168*tmp_kernel_op_97) + tmp_kernel_op_29*(tmp_kernel_op_100*tmp_kernel_op_171 + tmp_kernel_op_103*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_106*tmp_kernel_op_175 + tmp_kernel_op_109*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_153*tmp_kernel_op_76 + tmp_kernel_op_156*tmp_kernel_op_79);
+       const real_t tmp_kernel_op_206 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_134 + tmp_kernel_op_116*tmp_kernel_op_135) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_137 + tmp_kernel_op_119*tmp_kernel_op_138) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_140 + tmp_kernel_op_122*tmp_kernel_op_141) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_143 + tmp_kernel_op_125*tmp_kernel_op_144) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_146 + tmp_kernel_op_128*tmp_kernel_op_147) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_131 + tmp_kernel_op_113*tmp_kernel_op_132);
+       const real_t tmp_kernel_op_207 = tmp_kernel_op_11*(tmp_kernel_op_115*tmp_kernel_op_159 + tmp_kernel_op_116*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_118*tmp_kernel_op_163 + tmp_kernel_op_119*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_121*tmp_kernel_op_167 + tmp_kernel_op_122*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_124*tmp_kernel_op_171 + tmp_kernel_op_125*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_127*tmp_kernel_op_175 + tmp_kernel_op_128*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_112*tmp_kernel_op_153 + tmp_kernel_op_113*tmp_kernel_op_156);
+       const real_t tmp_kernel_op_208 = tmp_kernel_op_11*(tmp_kernel_op_134*tmp_kernel_op_159 + tmp_kernel_op_135*tmp_kernel_op_160) + tmp_kernel_op_17*(tmp_kernel_op_137*tmp_kernel_op_163 + tmp_kernel_op_138*tmp_kernel_op_164) + tmp_kernel_op_23*(tmp_kernel_op_140*tmp_kernel_op_167 + tmp_kernel_op_141*tmp_kernel_op_168) + tmp_kernel_op_29*(tmp_kernel_op_143*tmp_kernel_op_171 + tmp_kernel_op_144*tmp_kernel_op_172) + tmp_kernel_op_35*(tmp_kernel_op_146*tmp_kernel_op_175 + tmp_kernel_op_147*tmp_kernel_op_176) + tmp_kernel_op_5*(tmp_kernel_op_131*tmp_kernel_op_153 + tmp_kernel_op_132*tmp_kernel_op_156);
+       const real_t elMat_0_0 = tmp_kernel_op_11*((tmp_kernel_op_10*tmp_kernel_op_10) + (tmp_kernel_op_9*tmp_kernel_op_9)) + tmp_kernel_op_17*((tmp_kernel_op_15*tmp_kernel_op_15) + (tmp_kernel_op_16*tmp_kernel_op_16)) + tmp_kernel_op_23*((tmp_kernel_op_21*tmp_kernel_op_21) + (tmp_kernel_op_22*tmp_kernel_op_22)) + tmp_kernel_op_29*((tmp_kernel_op_27*tmp_kernel_op_27) + (tmp_kernel_op_28*tmp_kernel_op_28)) + tmp_kernel_op_35*((tmp_kernel_op_33*tmp_kernel_op_33) + (tmp_kernel_op_34*tmp_kernel_op_34)) + tmp_kernel_op_5*((tmp_kernel_op_3*tmp_kernel_op_3) + (tmp_kernel_op_4*tmp_kernel_op_4));
+       const real_t elMat_0_1 = tmp_kernel_op_54;
+       const real_t elMat_0_2 = tmp_kernel_op_73;
+       const real_t elMat_0_3 = tmp_kernel_op_110;
+       const real_t elMat_0_4 = tmp_kernel_op_129;
+       const real_t elMat_0_5 = tmp_kernel_op_148;
+       const real_t elMat_0_6 = tmp_kernel_op_177;
+       const real_t elMat_1_0 = tmp_kernel_op_54;
+       const real_t elMat_1_1 = tmp_kernel_op_11*(tmp_kernel_op_178*tmp_kernel_op_181 + tmp_kernel_op_180*tmp_kernel_op_181) + tmp_kernel_op_17*(tmp_kernel_op_178*tmp_kernel_op_182 + tmp_kernel_op_180*tmp_kernel_op_182) + tmp_kernel_op_23*(tmp_kernel_op_178*tmp_kernel_op_183 + tmp_kernel_op_180*tmp_kernel_op_183) + tmp_kernel_op_29*(tmp_kernel_op_178*tmp_kernel_op_184 + tmp_kernel_op_180*tmp_kernel_op_184) + tmp_kernel_op_35*(tmp_kernel_op_178*tmp_kernel_op_185 + tmp_kernel_op_180*tmp_kernel_op_185) + tmp_kernel_op_5*(tmp_kernel_op_178*tmp_kernel_op_179 + tmp_kernel_op_179*tmp_kernel_op_180);
+       const real_t elMat_1_2 = tmp_kernel_op_186;
+       const real_t elMat_1_3 = tmp_kernel_op_187;
+       const real_t elMat_1_4 = tmp_kernel_op_188;
+       const real_t elMat_1_5 = tmp_kernel_op_189;
+       const real_t elMat_1_6 = tmp_kernel_op_190;
+       const real_t elMat_2_0 = tmp_kernel_op_73;
+       const real_t elMat_2_1 = tmp_kernel_op_186;
+       const real_t elMat_2_2 = tmp_kernel_op_11*(tmp_kernel_op_191*tmp_kernel_op_194 + tmp_kernel_op_193*tmp_kernel_op_194) + tmp_kernel_op_17*(tmp_kernel_op_191*tmp_kernel_op_195 + tmp_kernel_op_193*tmp_kernel_op_195) + tmp_kernel_op_23*(tmp_kernel_op_191*tmp_kernel_op_196 + tmp_kernel_op_193*tmp_kernel_op_196) + tmp_kernel_op_29*(tmp_kernel_op_191*tmp_kernel_op_197 + tmp_kernel_op_193*tmp_kernel_op_197) + tmp_kernel_op_35*(tmp_kernel_op_191*tmp_kernel_op_198 + tmp_kernel_op_193*tmp_kernel_op_198) + tmp_kernel_op_5*(tmp_kernel_op_191*tmp_kernel_op_192 + tmp_kernel_op_192*tmp_kernel_op_193);
+       const real_t elMat_2_3 = tmp_kernel_op_199;
+       const real_t elMat_2_4 = tmp_kernel_op_200;
+       const real_t elMat_2_5 = tmp_kernel_op_201;
+       const real_t elMat_2_6 = tmp_kernel_op_202;
+       const real_t elMat_3_0 = tmp_kernel_op_110;
+       const real_t elMat_3_1 = tmp_kernel_op_187;
+       const real_t elMat_3_2 = tmp_kernel_op_199;
+       const real_t elMat_3_3 = tmp_kernel_op_11*((tmp_kernel_op_82*tmp_kernel_op_82) + (tmp_kernel_op_85*tmp_kernel_op_85)) + tmp_kernel_op_17*((tmp_kernel_op_88*tmp_kernel_op_88) + (tmp_kernel_op_91*tmp_kernel_op_91)) + tmp_kernel_op_23*((tmp_kernel_op_94*tmp_kernel_op_94) + (tmp_kernel_op_97*tmp_kernel_op_97)) + tmp_kernel_op_29*((tmp_kernel_op_100*tmp_kernel_op_100) + (tmp_kernel_op_103*tmp_kernel_op_103)) + tmp_kernel_op_35*((tmp_kernel_op_106*tmp_kernel_op_106) + (tmp_kernel_op_109*tmp_kernel_op_109)) + tmp_kernel_op_5*((tmp_kernel_op_76*tmp_kernel_op_76) + (tmp_kernel_op_79*tmp_kernel_op_79));
+       const real_t elMat_3_4 = tmp_kernel_op_203;
+       const real_t elMat_3_5 = tmp_kernel_op_204;
+       const real_t elMat_3_6 = tmp_kernel_op_205;
+       const real_t elMat_4_0 = tmp_kernel_op_129;
+       const real_t elMat_4_1 = tmp_kernel_op_188;
+       const real_t elMat_4_2 = tmp_kernel_op_200;
+       const real_t elMat_4_3 = tmp_kernel_op_203;
+       const real_t elMat_4_4 = tmp_kernel_op_11*((tmp_kernel_op_115*tmp_kernel_op_115) + (tmp_kernel_op_116*tmp_kernel_op_116)) + tmp_kernel_op_17*((tmp_kernel_op_118*tmp_kernel_op_118) + (tmp_kernel_op_119*tmp_kernel_op_119)) + tmp_kernel_op_23*((tmp_kernel_op_121*tmp_kernel_op_121) + (tmp_kernel_op_122*tmp_kernel_op_122)) + tmp_kernel_op_29*((tmp_kernel_op_124*tmp_kernel_op_124) + (tmp_kernel_op_125*tmp_kernel_op_125)) + tmp_kernel_op_35*((tmp_kernel_op_127*tmp_kernel_op_127) + (tmp_kernel_op_128*tmp_kernel_op_128)) + tmp_kernel_op_5*((tmp_kernel_op_112*tmp_kernel_op_112) + (tmp_kernel_op_113*tmp_kernel_op_113));
+       const real_t elMat_4_5 = tmp_kernel_op_206;
+       const real_t elMat_4_6 = tmp_kernel_op_207;
+       const real_t elMat_5_0 = tmp_kernel_op_148;
+       const real_t elMat_5_1 = tmp_kernel_op_189;
+       const real_t elMat_5_2 = tmp_kernel_op_201;
+       const real_t elMat_5_3 = tmp_kernel_op_204;
+       const real_t elMat_5_4 = tmp_kernel_op_206;
+       const real_t elMat_5_5 = tmp_kernel_op_11*((tmp_kernel_op_134*tmp_kernel_op_134) + (tmp_kernel_op_135*tmp_kernel_op_135)) + tmp_kernel_op_17*((tmp_kernel_op_137*tmp_kernel_op_137) + (tmp_kernel_op_138*tmp_kernel_op_138)) + tmp_kernel_op_23*((tmp_kernel_op_140*tmp_kernel_op_140) + (tmp_kernel_op_141*tmp_kernel_op_141)) + tmp_kernel_op_29*((tmp_kernel_op_143*tmp_kernel_op_143) + (tmp_kernel_op_144*tmp_kernel_op_144)) + tmp_kernel_op_35*((tmp_kernel_op_146*tmp_kernel_op_146) + (tmp_kernel_op_147*tmp_kernel_op_147)) + tmp_kernel_op_5*((tmp_kernel_op_131*tmp_kernel_op_131) + (tmp_kernel_op_132*tmp_kernel_op_132));
+       const real_t elMat_5_6 = tmp_kernel_op_208;
+       const real_t elMat_6_0 = tmp_kernel_op_177;
+       const real_t elMat_6_1 = tmp_kernel_op_190;
+       const real_t elMat_6_2 = tmp_kernel_op_202;
+       const real_t elMat_6_3 = tmp_kernel_op_205;
+       const real_t elMat_6_4 = tmp_kernel_op_207;
+       const real_t elMat_6_5 = tmp_kernel_op_208;
+       const real_t elMat_6_6 = tmp_kernel_op_11*((tmp_kernel_op_159*tmp_kernel_op_159) + (tmp_kernel_op_160*tmp_kernel_op_160)) + tmp_kernel_op_17*((tmp_kernel_op_163*tmp_kernel_op_163) + (tmp_kernel_op_164*tmp_kernel_op_164)) + tmp_kernel_op_23*((tmp_kernel_op_167*tmp_kernel_op_167) + (tmp_kernel_op_168*tmp_kernel_op_168)) + tmp_kernel_op_29*((tmp_kernel_op_171*tmp_kernel_op_171) + (tmp_kernel_op_172*tmp_kernel_op_172)) + tmp_kernel_op_35*((tmp_kernel_op_175*tmp_kernel_op_175) + (tmp_kernel_op_176*tmp_kernel_op_176)) + tmp_kernel_op_5*((tmp_kernel_op_153*tmp_kernel_op_153) + (tmp_kernel_op_156*tmp_kernel_op_156));
+       const real_t tmp_moved_constant_0 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_1 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_2 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_2;
+       const real_t tmp_moved_constant_2 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_3 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_4 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_8 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_8;
+       const real_t tmp_moved_constant_5 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_6 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_7 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_14 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_14;
+       const real_t tmp_moved_constant_8 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_9 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_10 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_20 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_20;
+       const real_t tmp_moved_constant_11 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_12 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_13 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_26 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_26;
+       const real_t tmp_moved_constant_14 = abs_det_jac_affine_BLUE*0.11169079483900581;
+       const real_t tmp_moved_constant_15 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_0_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_16 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_32 + jac_affine_inv_1_1_BLUE*tmp_kernel_op_32;
+       const real_t tmp_moved_constant_17 = abs_det_jac_affine_BLUE*0.054975871827660949;
+       const real_t tmp_moved_constant_18 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_19 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_36;
+       const real_t tmp_moved_constant_20 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_21 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_39;
+       const real_t tmp_moved_constant_22 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_23 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_42;
+       const real_t tmp_moved_constant_24 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_25 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_45;
+       const real_t tmp_moved_constant_26 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_27 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_48;
+       const real_t tmp_moved_constant_28 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_29 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_51;
+       const real_t tmp_moved_constant_30 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_25 + tmp_moved_constant_24*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_12*tmp_moved_constant_26 + tmp_moved_constant_13*tmp_moved_constant_27) + tmp_moved_constant_17*(tmp_moved_constant_15*tmp_moved_constant_28 + tmp_moved_constant_16*tmp_moved_constant_29) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_18 + tmp_moved_constant_1*tmp_moved_constant_19) + tmp_moved_constant_5*(tmp_moved_constant_20*tmp_moved_constant_3 + tmp_moved_constant_21*tmp_moved_constant_4) + tmp_moved_constant_8*(tmp_moved_constant_22*tmp_moved_constant_6 + tmp_moved_constant_23*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_31 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_32 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_55;
+       const real_t tmp_moved_constant_33 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_34 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_58;
+       const real_t tmp_moved_constant_35 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_36 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_61;
+       const real_t tmp_moved_constant_37 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_38 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_64;
+       const real_t tmp_moved_constant_39 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_40 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_67;
+       const real_t tmp_moved_constant_41 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_42 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_70;
+       const real_t tmp_moved_constant_43 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_38 + tmp_moved_constant_37*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_12*tmp_moved_constant_39 + tmp_moved_constant_13*tmp_moved_constant_40) + tmp_moved_constant_17*(tmp_moved_constant_15*tmp_moved_constant_41 + tmp_moved_constant_16*tmp_moved_constant_42) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_31 + tmp_moved_constant_1*tmp_moved_constant_32) + tmp_moved_constant_5*(tmp_moved_constant_3*tmp_moved_constant_33 + tmp_moved_constant_34*tmp_moved_constant_4) + tmp_moved_constant_8*(tmp_moved_constant_35*tmp_moved_constant_6 + tmp_moved_constant_36*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_44 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_45 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_46 = tmp_moved_constant_44 + tmp_moved_constant_45;
+       const real_t tmp_moved_constant_47 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_1;
+       const real_t tmp_moved_constant_48 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_0;
+       const real_t tmp_moved_constant_49 = tmp_moved_constant_47 + tmp_moved_constant_48;
+       const real_t tmp_moved_constant_50 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_51 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_52 = tmp_moved_constant_50 + tmp_moved_constant_51;
+       const real_t tmp_moved_constant_53 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_7;
+       const real_t tmp_moved_constant_54 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_6;
+       const real_t tmp_moved_constant_55 = tmp_moved_constant_53 + tmp_moved_constant_54;
+       const real_t tmp_moved_constant_56 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_57 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_58 = tmp_moved_constant_56 + tmp_moved_constant_57;
+       const real_t tmp_moved_constant_59 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_13;
+       const real_t tmp_moved_constant_60 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_12;
+       const real_t tmp_moved_constant_61 = tmp_moved_constant_59 + tmp_moved_constant_60;
+       const real_t tmp_moved_constant_62 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_63 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_64 = tmp_moved_constant_62 + tmp_moved_constant_63;
+       const real_t tmp_moved_constant_65 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_19;
+       const real_t tmp_moved_constant_66 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_18;
+       const real_t tmp_moved_constant_67 = tmp_moved_constant_65 + tmp_moved_constant_66;
+       const real_t tmp_moved_constant_68 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_69 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_70 = tmp_moved_constant_68 + tmp_moved_constant_69;
+       const real_t tmp_moved_constant_71 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_25;
+       const real_t tmp_moved_constant_72 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_24;
+       const real_t tmp_moved_constant_73 = tmp_moved_constant_71 + tmp_moved_constant_72;
+       const real_t tmp_moved_constant_74 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_75 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_76 = tmp_moved_constant_74 + tmp_moved_constant_75;
+       const real_t tmp_moved_constant_77 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_31;
+       const real_t tmp_moved_constant_78 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_30;
+       const real_t tmp_moved_constant_79 = tmp_moved_constant_77 + tmp_moved_constant_78;
+       const real_t tmp_moved_constant_80 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_67 + tmp_moved_constant_64*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_12*tmp_moved_constant_70 + tmp_moved_constant_13*tmp_moved_constant_73) + tmp_moved_constant_17*(tmp_moved_constant_15*tmp_moved_constant_76 + tmp_moved_constant_16*tmp_moved_constant_79) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_46 + tmp_moved_constant_1*tmp_moved_constant_49) + tmp_moved_constant_5*(tmp_moved_constant_3*tmp_moved_constant_52 + tmp_moved_constant_4*tmp_moved_constant_55) + tmp_moved_constant_8*(tmp_moved_constant_58*tmp_moved_constant_6 + tmp_moved_constant_61*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_81 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_111 - tmp_moved_constant_44;
+       const real_t tmp_moved_constant_82 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_111 - tmp_moved_constant_47;
+       const real_t tmp_moved_constant_83 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_114 - tmp_moved_constant_50;
+       const real_t tmp_moved_constant_84 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_114 - tmp_moved_constant_53;
+       const real_t tmp_moved_constant_85 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_117 - tmp_moved_constant_56;
+       const real_t tmp_moved_constant_86 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_117 - tmp_moved_constant_59;
+       const real_t tmp_moved_constant_87 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_120 - tmp_moved_constant_62;
+       const real_t tmp_moved_constant_88 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_120 - tmp_moved_constant_65;
+       const real_t tmp_moved_constant_89 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_123 - tmp_moved_constant_68;
+       const real_t tmp_moved_constant_90 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_123 - tmp_moved_constant_71;
+       const real_t tmp_moved_constant_91 = jac_affine_inv_1_0_BLUE*tmp_kernel_op_126 - tmp_moved_constant_74;
+       const real_t tmp_moved_constant_92 = jac_affine_inv_1_1_BLUE*tmp_kernel_op_126 - tmp_moved_constant_77;
+       const real_t tmp_moved_constant_93 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_88 + tmp_moved_constant_87*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_12*tmp_moved_constant_89 + tmp_moved_constant_13*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_15*tmp_moved_constant_91 + tmp_moved_constant_16*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_81 + tmp_moved_constant_1*tmp_moved_constant_82) + tmp_moved_constant_5*(tmp_moved_constant_3*tmp_moved_constant_83 + tmp_moved_constant_4*tmp_moved_constant_84) + tmp_moved_constant_8*(tmp_moved_constant_6*tmp_moved_constant_85 + tmp_moved_constant_7*tmp_moved_constant_86);
+       const real_t tmp_moved_constant_94 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_130 - tmp_moved_constant_45;
+       const real_t tmp_moved_constant_95 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_130 - tmp_moved_constant_48;
+       const real_t tmp_moved_constant_96 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_133 - tmp_moved_constant_51;
+       const real_t tmp_moved_constant_97 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_133 - tmp_moved_constant_54;
+       const real_t tmp_moved_constant_98 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_136 - tmp_moved_constant_57;
+       const real_t tmp_moved_constant_99 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_136 - tmp_moved_constant_60;
+       const real_t tmp_moved_constant_100 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_139 - tmp_moved_constant_63;
+       const real_t tmp_moved_constant_101 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_139 - tmp_moved_constant_66;
+       const real_t tmp_moved_constant_102 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_142 - tmp_moved_constant_69;
+       const real_t tmp_moved_constant_103 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_142 - tmp_moved_constant_72;
+       const real_t tmp_moved_constant_104 = jac_affine_inv_0_0_BLUE*tmp_kernel_op_145 - tmp_moved_constant_75;
+       const real_t tmp_moved_constant_105 = jac_affine_inv_0_1_BLUE*tmp_kernel_op_145 - tmp_moved_constant_78;
+       const real_t tmp_moved_constant_106 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_101 + tmp_moved_constant_100*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_12 + tmp_moved_constant_103*tmp_moved_constant_13) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_15 + tmp_moved_constant_105*tmp_moved_constant_16) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_94 + tmp_moved_constant_1*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_3*tmp_moved_constant_96 + tmp_moved_constant_4*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_6*tmp_moved_constant_98 + tmp_moved_constant_7*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_107 = jac_affine_inv_0_0_BLUE*27.0;
+       const real_t tmp_moved_constant_108 = jac_affine_inv_1_0_BLUE*27.0;
+       const real_t tmp_moved_constant_109 = tmp_kernel_op_152*tmp_moved_constant_108 + tmp_moved_constant_107*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_110 = jac_affine_inv_0_1_BLUE*27.0;
+       const real_t tmp_moved_constant_111 = jac_affine_inv_1_1_BLUE*27.0;
+       const real_t tmp_moved_constant_112 = tmp_kernel_op_152*tmp_moved_constant_111 + tmp_moved_constant_110*((real_t)(tmp_kernel_op_150));
+       const real_t tmp_moved_constant_113 = tmp_kernel_op_157*tmp_moved_constant_107 + tmp_kernel_op_158*tmp_moved_constant_108;
+       const real_t tmp_moved_constant_114 = tmp_kernel_op_157*tmp_moved_constant_110 + tmp_kernel_op_158*tmp_moved_constant_111;
+       const real_t tmp_moved_constant_115 = tmp_kernel_op_161*tmp_moved_constant_107 + tmp_moved_constant_108*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_116 = tmp_kernel_op_161*tmp_moved_constant_110 + tmp_moved_constant_111*((real_t)(tmp_kernel_op_162));
+       const real_t tmp_moved_constant_117 = tmp_kernel_op_165*tmp_moved_constant_107 + tmp_kernel_op_166*tmp_moved_constant_108;
+       const real_t tmp_moved_constant_118 = tmp_kernel_op_165*tmp_moved_constant_110 + tmp_kernel_op_166*tmp_moved_constant_111;
+       const real_t tmp_moved_constant_119 = tmp_kernel_op_169*tmp_moved_constant_107 + tmp_kernel_op_170*tmp_moved_constant_108;
+       const real_t tmp_moved_constant_120 = tmp_kernel_op_169*tmp_moved_constant_110 + tmp_kernel_op_170*tmp_moved_constant_111;
+       const real_t tmp_moved_constant_121 = tmp_kernel_op_173*tmp_moved_constant_107 + tmp_kernel_op_174*tmp_moved_constant_108;
+       const real_t tmp_moved_constant_122 = tmp_kernel_op_173*tmp_moved_constant_110 + tmp_kernel_op_174*tmp_moved_constant_111;
+       const real_t tmp_moved_constant_123 = tmp_moved_constant_11*(tmp_moved_constant_10*tmp_moved_constant_118 + tmp_moved_constant_117*tmp_moved_constant_9) + tmp_moved_constant_14*(tmp_moved_constant_119*tmp_moved_constant_12 + tmp_moved_constant_120*tmp_moved_constant_13) + tmp_moved_constant_17*(tmp_moved_constant_121*tmp_moved_constant_15 + tmp_moved_constant_122*tmp_moved_constant_16) + tmp_moved_constant_2*(tmp_moved_constant_0*tmp_moved_constant_109 + tmp_moved_constant_1*tmp_moved_constant_112) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_3 + tmp_moved_constant_114*tmp_moved_constant_4) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_6 + tmp_moved_constant_116*tmp_moved_constant_7);
+       const real_t tmp_moved_constant_124 = (jac_affine_inv_0_0_BLUE*jac_affine_inv_0_0_BLUE);
+       const real_t tmp_moved_constant_125 = (jac_affine_inv_0_1_BLUE*jac_affine_inv_0_1_BLUE);
+       const real_t tmp_moved_constant_126 = tmp_moved_constant_11*(tmp_moved_constant_24*tmp_moved_constant_37 + tmp_moved_constant_25*tmp_moved_constant_38) + tmp_moved_constant_14*(tmp_moved_constant_26*tmp_moved_constant_39 + tmp_moved_constant_27*tmp_moved_constant_40) + tmp_moved_constant_17*(tmp_moved_constant_28*tmp_moved_constant_41 + tmp_moved_constant_29*tmp_moved_constant_42) + tmp_moved_constant_2*(tmp_moved_constant_18*tmp_moved_constant_31 + tmp_moved_constant_19*tmp_moved_constant_32) + tmp_moved_constant_5*(tmp_moved_constant_20*tmp_moved_constant_33 + tmp_moved_constant_21*tmp_moved_constant_34) + tmp_moved_constant_8*(tmp_moved_constant_22*tmp_moved_constant_35 + tmp_moved_constant_23*tmp_moved_constant_36);
+       const real_t tmp_moved_constant_127 = tmp_moved_constant_11*(tmp_moved_constant_24*tmp_moved_constant_64 + tmp_moved_constant_25*tmp_moved_constant_67) + tmp_moved_constant_14*(tmp_moved_constant_26*tmp_moved_constant_70 + tmp_moved_constant_27*tmp_moved_constant_73) + tmp_moved_constant_17*(tmp_moved_constant_28*tmp_moved_constant_76 + tmp_moved_constant_29*tmp_moved_constant_79) + tmp_moved_constant_2*(tmp_moved_constant_18*tmp_moved_constant_46 + tmp_moved_constant_19*tmp_moved_constant_49) + tmp_moved_constant_5*(tmp_moved_constant_20*tmp_moved_constant_52 + tmp_moved_constant_21*tmp_moved_constant_55) + tmp_moved_constant_8*(tmp_moved_constant_22*tmp_moved_constant_58 + tmp_moved_constant_23*tmp_moved_constant_61);
+       const real_t tmp_moved_constant_128 = tmp_moved_constant_11*(tmp_moved_constant_24*tmp_moved_constant_87 + tmp_moved_constant_25*tmp_moved_constant_88) + tmp_moved_constant_14*(tmp_moved_constant_26*tmp_moved_constant_89 + tmp_moved_constant_27*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_28*tmp_moved_constant_91 + tmp_moved_constant_29*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_18*tmp_moved_constant_81 + tmp_moved_constant_19*tmp_moved_constant_82) + tmp_moved_constant_5*(tmp_moved_constant_20*tmp_moved_constant_83 + tmp_moved_constant_21*tmp_moved_constant_84) + tmp_moved_constant_8*(tmp_moved_constant_22*tmp_moved_constant_85 + tmp_moved_constant_23*tmp_moved_constant_86);
+       const real_t tmp_moved_constant_129 = tmp_moved_constant_11*(tmp_moved_constant_100*tmp_moved_constant_24 + tmp_moved_constant_101*tmp_moved_constant_25) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_26 + tmp_moved_constant_103*tmp_moved_constant_27) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_28 + tmp_moved_constant_105*tmp_moved_constant_29) + tmp_moved_constant_2*(tmp_moved_constant_18*tmp_moved_constant_94 + tmp_moved_constant_19*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_20*tmp_moved_constant_96 + tmp_moved_constant_21*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_22*tmp_moved_constant_98 + tmp_moved_constant_23*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_130 = tmp_moved_constant_11*(tmp_moved_constant_117*tmp_moved_constant_24 + tmp_moved_constant_118*tmp_moved_constant_25) + tmp_moved_constant_14*(tmp_moved_constant_119*tmp_moved_constant_26 + tmp_moved_constant_120*tmp_moved_constant_27) + tmp_moved_constant_17*(tmp_moved_constant_121*tmp_moved_constant_28 + tmp_moved_constant_122*tmp_moved_constant_29) + tmp_moved_constant_2*(tmp_moved_constant_109*tmp_moved_constant_18 + tmp_moved_constant_112*tmp_moved_constant_19) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_20 + tmp_moved_constant_114*tmp_moved_constant_21) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_22 + tmp_moved_constant_116*tmp_moved_constant_23);
+       const real_t tmp_moved_constant_131 = (jac_affine_inv_1_0_BLUE*jac_affine_inv_1_0_BLUE);
+       const real_t tmp_moved_constant_132 = (jac_affine_inv_1_1_BLUE*jac_affine_inv_1_1_BLUE);
+       const real_t tmp_moved_constant_133 = tmp_moved_constant_11*(tmp_moved_constant_37*tmp_moved_constant_64 + tmp_moved_constant_38*tmp_moved_constant_67) + tmp_moved_constant_14*(tmp_moved_constant_39*tmp_moved_constant_70 + tmp_moved_constant_40*tmp_moved_constant_73) + tmp_moved_constant_17*(tmp_moved_constant_41*tmp_moved_constant_76 + tmp_moved_constant_42*tmp_moved_constant_79) + tmp_moved_constant_2*(tmp_moved_constant_31*tmp_moved_constant_46 + tmp_moved_constant_32*tmp_moved_constant_49) + tmp_moved_constant_5*(tmp_moved_constant_33*tmp_moved_constant_52 + tmp_moved_constant_34*tmp_moved_constant_55) + tmp_moved_constant_8*(tmp_moved_constant_35*tmp_moved_constant_58 + tmp_moved_constant_36*tmp_moved_constant_61);
+       const real_t tmp_moved_constant_134 = tmp_moved_constant_11*(tmp_moved_constant_37*tmp_moved_constant_87 + tmp_moved_constant_38*tmp_moved_constant_88) + tmp_moved_constant_14*(tmp_moved_constant_39*tmp_moved_constant_89 + tmp_moved_constant_40*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_41*tmp_moved_constant_91 + tmp_moved_constant_42*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_31*tmp_moved_constant_81 + tmp_moved_constant_32*tmp_moved_constant_82) + tmp_moved_constant_5*(tmp_moved_constant_33*tmp_moved_constant_83 + tmp_moved_constant_34*tmp_moved_constant_84) + tmp_moved_constant_8*(tmp_moved_constant_35*tmp_moved_constant_85 + tmp_moved_constant_36*tmp_moved_constant_86);
+       const real_t tmp_moved_constant_135 = tmp_moved_constant_11*(tmp_moved_constant_100*tmp_moved_constant_37 + tmp_moved_constant_101*tmp_moved_constant_38) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_39 + tmp_moved_constant_103*tmp_moved_constant_40) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_41 + tmp_moved_constant_105*tmp_moved_constant_42) + tmp_moved_constant_2*(tmp_moved_constant_31*tmp_moved_constant_94 + tmp_moved_constant_32*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_33*tmp_moved_constant_96 + tmp_moved_constant_34*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_35*tmp_moved_constant_98 + tmp_moved_constant_36*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_136 = tmp_moved_constant_11*(tmp_moved_constant_117*tmp_moved_constant_37 + tmp_moved_constant_118*tmp_moved_constant_38) + tmp_moved_constant_14*(tmp_moved_constant_119*tmp_moved_constant_39 + tmp_moved_constant_120*tmp_moved_constant_40) + tmp_moved_constant_17*(tmp_moved_constant_121*tmp_moved_constant_41 + tmp_moved_constant_122*tmp_moved_constant_42) + tmp_moved_constant_2*(tmp_moved_constant_109*tmp_moved_constant_31 + tmp_moved_constant_112*tmp_moved_constant_32) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_33 + tmp_moved_constant_114*tmp_moved_constant_34) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_35 + tmp_moved_constant_116*tmp_moved_constant_36);
+       const real_t tmp_moved_constant_137 = tmp_moved_constant_11*(tmp_moved_constant_64*tmp_moved_constant_87 + tmp_moved_constant_67*tmp_moved_constant_88) + tmp_moved_constant_14*(tmp_moved_constant_70*tmp_moved_constant_89 + tmp_moved_constant_73*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_76*tmp_moved_constant_91 + tmp_moved_constant_79*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_46*tmp_moved_constant_81 + tmp_moved_constant_49*tmp_moved_constant_82) + tmp_moved_constant_5*(tmp_moved_constant_52*tmp_moved_constant_83 + tmp_moved_constant_55*tmp_moved_constant_84) + tmp_moved_constant_8*(tmp_moved_constant_58*tmp_moved_constant_85 + tmp_moved_constant_61*tmp_moved_constant_86);
+       const real_t tmp_moved_constant_138 = tmp_moved_constant_11*(tmp_moved_constant_100*tmp_moved_constant_64 + tmp_moved_constant_101*tmp_moved_constant_67) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_70 + tmp_moved_constant_103*tmp_moved_constant_73) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_76 + tmp_moved_constant_105*tmp_moved_constant_79) + tmp_moved_constant_2*(tmp_moved_constant_46*tmp_moved_constant_94 + tmp_moved_constant_49*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_52*tmp_moved_constant_96 + tmp_moved_constant_55*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_58*tmp_moved_constant_98 + tmp_moved_constant_61*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_139 = tmp_moved_constant_11*(tmp_moved_constant_117*tmp_moved_constant_64 + tmp_moved_constant_118*tmp_moved_constant_67) + tmp_moved_constant_14*(tmp_moved_constant_119*tmp_moved_constant_70 + tmp_moved_constant_120*tmp_moved_constant_73) + tmp_moved_constant_17*(tmp_moved_constant_121*tmp_moved_constant_76 + tmp_moved_constant_122*tmp_moved_constant_79) + tmp_moved_constant_2*(tmp_moved_constant_109*tmp_moved_constant_46 + tmp_moved_constant_112*tmp_moved_constant_49) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_52 + tmp_moved_constant_114*tmp_moved_constant_55) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_58 + tmp_moved_constant_116*tmp_moved_constant_61);
+       const real_t tmp_moved_constant_140 = tmp_moved_constant_11*(tmp_moved_constant_100*tmp_moved_constant_87 + tmp_moved_constant_101*tmp_moved_constant_88) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_89 + tmp_moved_constant_103*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_91 + tmp_moved_constant_105*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_81*tmp_moved_constant_94 + tmp_moved_constant_82*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_83*tmp_moved_constant_96 + tmp_moved_constant_84*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_85*tmp_moved_constant_98 + tmp_moved_constant_86*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_141 = tmp_moved_constant_11*(tmp_moved_constant_117*tmp_moved_constant_87 + tmp_moved_constant_118*tmp_moved_constant_88) + tmp_moved_constant_14*(tmp_moved_constant_119*tmp_moved_constant_89 + tmp_moved_constant_120*tmp_moved_constant_90) + tmp_moved_constant_17*(tmp_moved_constant_121*tmp_moved_constant_91 + tmp_moved_constant_122*tmp_moved_constant_92) + tmp_moved_constant_2*(tmp_moved_constant_109*tmp_moved_constant_81 + tmp_moved_constant_112*tmp_moved_constant_82) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_83 + tmp_moved_constant_114*tmp_moved_constant_84) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_85 + tmp_moved_constant_116*tmp_moved_constant_86);
+       const real_t tmp_moved_constant_142 = tmp_moved_constant_11*(tmp_moved_constant_100*tmp_moved_constant_117 + tmp_moved_constant_101*tmp_moved_constant_118) + tmp_moved_constant_14*(tmp_moved_constant_102*tmp_moved_constant_119 + tmp_moved_constant_103*tmp_moved_constant_120) + tmp_moved_constant_17*(tmp_moved_constant_104*tmp_moved_constant_121 + tmp_moved_constant_105*tmp_moved_constant_122) + tmp_moved_constant_2*(tmp_moved_constant_109*tmp_moved_constant_94 + tmp_moved_constant_112*tmp_moved_constant_95) + tmp_moved_constant_5*(tmp_moved_constant_113*tmp_moved_constant_96 + tmp_moved_constant_114*tmp_moved_constant_97) + tmp_moved_constant_8*(tmp_moved_constant_115*tmp_moved_constant_98 + tmp_moved_constant_116*tmp_moved_constant_99);
+       const real_t tmp_moved_constant_143 = tmp_moved_constant_11*((tmp_moved_constant_10*tmp_moved_constant_10) + (tmp_moved_constant_9*tmp_moved_constant_9)) + tmp_moved_constant_14*((tmp_moved_constant_12*tmp_moved_constant_12) + (tmp_moved_constant_13*tmp_moved_constant_13)) + tmp_moved_constant_17*((tmp_moved_constant_15*tmp_moved_constant_15) + (tmp_moved_constant_16*tmp_moved_constant_16)) + tmp_moved_constant_2*((tmp_moved_constant_0*tmp_moved_constant_0) + (tmp_moved_constant_1*tmp_moved_constant_1)) + tmp_moved_constant_5*((tmp_moved_constant_3*tmp_moved_constant_3) + (tmp_moved_constant_4*tmp_moved_constant_4)) + tmp_moved_constant_8*((tmp_moved_constant_6*tmp_moved_constant_6) + (tmp_moved_constant_7*tmp_moved_constant_7));
+       const real_t tmp_moved_constant_144 = tmp_moved_constant_30;
+       const real_t tmp_moved_constant_145 = tmp_moved_constant_43;
+       const real_t tmp_moved_constant_146 = tmp_moved_constant_80;
+       const real_t tmp_moved_constant_147 = tmp_moved_constant_93;
+       const real_t tmp_moved_constant_148 = tmp_moved_constant_106;
+       const real_t tmp_moved_constant_149 = tmp_moved_constant_123;
+       const real_t tmp_moved_constant_150 = tmp_moved_constant_30;
+       const real_t tmp_moved_constant_151 = tmp_moved_constant_11*(tmp_kernel_op_183*tmp_moved_constant_124 + tmp_kernel_op_183*tmp_moved_constant_125) + tmp_moved_constant_14*(tmp_kernel_op_184*tmp_moved_constant_124 + tmp_kernel_op_184*tmp_moved_constant_125) + tmp_moved_constant_17*(tmp_kernel_op_185*tmp_moved_constant_124 + tmp_kernel_op_185*tmp_moved_constant_125) + tmp_moved_constant_2*(tmp_kernel_op_179*tmp_moved_constant_124 + tmp_kernel_op_179*tmp_moved_constant_125) + tmp_moved_constant_5*(tmp_kernel_op_181*tmp_moved_constant_124 + tmp_kernel_op_181*tmp_moved_constant_125) + tmp_moved_constant_8*(tmp_kernel_op_182*tmp_moved_constant_124 + tmp_kernel_op_182*tmp_moved_constant_125);
+       const real_t tmp_moved_constant_152 = tmp_moved_constant_126;
+       const real_t tmp_moved_constant_153 = tmp_moved_constant_127;
+       const real_t tmp_moved_constant_154 = tmp_moved_constant_128;
+       const real_t tmp_moved_constant_155 = tmp_moved_constant_129;
+       const real_t tmp_moved_constant_156 = tmp_moved_constant_130;
+       const real_t tmp_moved_constant_157 = tmp_moved_constant_43;
+       const real_t tmp_moved_constant_158 = tmp_moved_constant_126;
+       const real_t tmp_moved_constant_159 = tmp_moved_constant_11*(tmp_kernel_op_196*tmp_moved_constant_131 + tmp_kernel_op_196*tmp_moved_constant_132) + tmp_moved_constant_14*(tmp_kernel_op_197*tmp_moved_constant_131 + tmp_kernel_op_197*tmp_moved_constant_132) + tmp_moved_constant_17*(tmp_kernel_op_198*tmp_moved_constant_131 + tmp_kernel_op_198*tmp_moved_constant_132) + tmp_moved_constant_2*(tmp_kernel_op_192*tmp_moved_constant_131 + tmp_kernel_op_192*tmp_moved_constant_132) + tmp_moved_constant_5*(tmp_kernel_op_194*tmp_moved_constant_131 + tmp_kernel_op_194*tmp_moved_constant_132) + tmp_moved_constant_8*(tmp_kernel_op_195*tmp_moved_constant_131 + tmp_kernel_op_195*tmp_moved_constant_132);
+       const real_t tmp_moved_constant_160 = tmp_moved_constant_133;
+       const real_t tmp_moved_constant_161 = tmp_moved_constant_134;
+       const real_t tmp_moved_constant_162 = tmp_moved_constant_135;
+       const real_t tmp_moved_constant_163 = tmp_moved_constant_136;
+       const real_t tmp_moved_constant_164 = tmp_moved_constant_80;
+       const real_t tmp_moved_constant_165 = tmp_moved_constant_127;
+       const real_t tmp_moved_constant_166 = tmp_moved_constant_133;
+       const real_t tmp_moved_constant_167 = tmp_moved_constant_11*((tmp_moved_constant_64*tmp_moved_constant_64) + (tmp_moved_constant_67*tmp_moved_constant_67)) + tmp_moved_constant_14*((tmp_moved_constant_70*tmp_moved_constant_70) + (tmp_moved_constant_73*tmp_moved_constant_73)) + tmp_moved_constant_17*((tmp_moved_constant_76*tmp_moved_constant_76) + (tmp_moved_constant_79*tmp_moved_constant_79)) + tmp_moved_constant_2*((tmp_moved_constant_46*tmp_moved_constant_46) + (tmp_moved_constant_49*tmp_moved_constant_49)) + tmp_moved_constant_5*((tmp_moved_constant_52*tmp_moved_constant_52) + (tmp_moved_constant_55*tmp_moved_constant_55)) + tmp_moved_constant_8*((tmp_moved_constant_58*tmp_moved_constant_58) + (tmp_moved_constant_61*tmp_moved_constant_61));
+       const real_t tmp_moved_constant_168 = tmp_moved_constant_137;
+       const real_t tmp_moved_constant_169 = tmp_moved_constant_138;
+       const real_t tmp_moved_constant_170 = tmp_moved_constant_139;
+       const real_t tmp_moved_constant_171 = tmp_moved_constant_93;
+       const real_t tmp_moved_constant_172 = tmp_moved_constant_128;
+       const real_t tmp_moved_constant_173 = tmp_moved_constant_134;
+       const real_t tmp_moved_constant_174 = tmp_moved_constant_137;
+       const real_t tmp_moved_constant_175 = tmp_moved_constant_11*((tmp_moved_constant_87*tmp_moved_constant_87) + (tmp_moved_constant_88*tmp_moved_constant_88)) + tmp_moved_constant_14*((tmp_moved_constant_89*tmp_moved_constant_89) + (tmp_moved_constant_90*tmp_moved_constant_90)) + tmp_moved_constant_17*((tmp_moved_constant_91*tmp_moved_constant_91) + (tmp_moved_constant_92*tmp_moved_constant_92)) + tmp_moved_constant_2*((tmp_moved_constant_81*tmp_moved_constant_81) + (tmp_moved_constant_82*tmp_moved_constant_82)) + tmp_moved_constant_5*((tmp_moved_constant_83*tmp_moved_constant_83) + (tmp_moved_constant_84*tmp_moved_constant_84)) + tmp_moved_constant_8*((tmp_moved_constant_85*tmp_moved_constant_85) + (tmp_moved_constant_86*tmp_moved_constant_86));
+       const real_t tmp_moved_constant_176 = tmp_moved_constant_140;
+       const real_t tmp_moved_constant_177 = tmp_moved_constant_141;
+       const real_t tmp_moved_constant_178 = tmp_moved_constant_106;
+       const real_t tmp_moved_constant_179 = tmp_moved_constant_129;
+       const real_t tmp_moved_constant_180 = tmp_moved_constant_135;
+       const real_t tmp_moved_constant_181 = tmp_moved_constant_138;
+       const real_t tmp_moved_constant_182 = tmp_moved_constant_140;
+       const real_t tmp_moved_constant_183 = tmp_moved_constant_11*((tmp_moved_constant_100*tmp_moved_constant_100) + (tmp_moved_constant_101*tmp_moved_constant_101)) + tmp_moved_constant_14*((tmp_moved_constant_102*tmp_moved_constant_102) + (tmp_moved_constant_103*tmp_moved_constant_103)) + tmp_moved_constant_17*((tmp_moved_constant_104*tmp_moved_constant_104) + (tmp_moved_constant_105*tmp_moved_constant_105)) + tmp_moved_constant_2*((tmp_moved_constant_94*tmp_moved_constant_94) + (tmp_moved_constant_95*tmp_moved_constant_95)) + tmp_moved_constant_5*((tmp_moved_constant_96*tmp_moved_constant_96) + (tmp_moved_constant_97*tmp_moved_constant_97)) + tmp_moved_constant_8*((tmp_moved_constant_98*tmp_moved_constant_98) + (tmp_moved_constant_99*tmp_moved_constant_99));
+       const real_t tmp_moved_constant_184 = tmp_moved_constant_142;
+       const real_t tmp_moved_constant_185 = tmp_moved_constant_123;
+       const real_t tmp_moved_constant_186 = tmp_moved_constant_130;
+       const real_t tmp_moved_constant_187 = tmp_moved_constant_136;
+       const real_t tmp_moved_constant_188 = tmp_moved_constant_139;
+       const real_t tmp_moved_constant_189 = tmp_moved_constant_141;
+       const real_t tmp_moved_constant_190 = tmp_moved_constant_142;
+       const real_t tmp_moved_constant_191 = tmp_moved_constant_11*((tmp_moved_constant_117*tmp_moved_constant_117) + (tmp_moved_constant_118*tmp_moved_constant_118)) + tmp_moved_constant_14*((tmp_moved_constant_119*tmp_moved_constant_119) + (tmp_moved_constant_120*tmp_moved_constant_120)) + tmp_moved_constant_17*((tmp_moved_constant_121*tmp_moved_constant_121) + (tmp_moved_constant_122*tmp_moved_constant_122)) + tmp_moved_constant_2*((tmp_moved_constant_109*tmp_moved_constant_109) + (tmp_moved_constant_112*tmp_moved_constant_112)) + tmp_moved_constant_5*((tmp_moved_constant_113*tmp_moved_constant_113) + (tmp_moved_constant_114*tmp_moved_constant_114)) + tmp_moved_constant_8*((tmp_moved_constant_115*tmp_moved_constant_115) + (tmp_moved_constant_116*tmp_moved_constant_116));
+       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 int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+               
+                   std::vector< uint_t > _data_rowIdx( 7 );
+                   std::vector< uint_t > _data_colIdx( 7 );
+                   std::vector< real_t > _data_mat( 49 );
+               
+                   _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_rowIdx[2] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_rowIdx[6] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[0] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[1] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_colIdx[2] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[6] = ((uint64_t)(_data_src[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_1_0));
+                   _data_mat[8] = ((real_t)(elMat_1_1));
+                   _data_mat[9] = ((real_t)(elMat_1_2));
+                   _data_mat[10] = ((real_t)(elMat_1_3));
+                   _data_mat[11] = ((real_t)(elMat_1_4));
+                   _data_mat[12] = ((real_t)(elMat_1_5));
+                   _data_mat[13] = ((real_t)(elMat_1_6));
+                   _data_mat[14] = ((real_t)(elMat_2_0));
+                   _data_mat[15] = ((real_t)(elMat_2_1));
+                   _data_mat[16] = ((real_t)(elMat_2_2));
+                   _data_mat[17] = ((real_t)(elMat_2_3));
+                   _data_mat[18] = ((real_t)(elMat_2_4));
+                   _data_mat[19] = ((real_t)(elMat_2_5));
+                   _data_mat[20] = ((real_t)(elMat_2_6));
+                   _data_mat[21] = ((real_t)(elMat_3_0));
+                   _data_mat[22] = ((real_t)(elMat_3_1));
+                   _data_mat[23] = ((real_t)(elMat_3_2));
+                   _data_mat[24] = ((real_t)(elMat_3_3));
+                   _data_mat[25] = ((real_t)(elMat_3_4));
+                   _data_mat[26] = ((real_t)(elMat_3_5));
+                   _data_mat[27] = ((real_t)(elMat_3_6));
+                   _data_mat[28] = ((real_t)(elMat_4_0));
+                   _data_mat[29] = ((real_t)(elMat_4_1));
+                   _data_mat[30] = ((real_t)(elMat_4_2));
+                   _data_mat[31] = ((real_t)(elMat_4_3));
+                   _data_mat[32] = ((real_t)(elMat_4_4));
+                   _data_mat[33] = ((real_t)(elMat_4_5));
+                   _data_mat[34] = ((real_t)(elMat_4_6));
+                   _data_mat[35] = ((real_t)(elMat_5_0));
+                   _data_mat[36] = ((real_t)(elMat_5_1));
+                   _data_mat[37] = ((real_t)(elMat_5_2));
+                   _data_mat[38] = ((real_t)(elMat_5_3));
+                   _data_mat[39] = ((real_t)(elMat_5_4));
+                   _data_mat[40] = ((real_t)(elMat_5_5));
+                   _data_mat[41] = ((real_t)(elMat_5_6));
+                   _data_mat[42] = ((real_t)(elMat_6_0));
+                   _data_mat[43] = ((real_t)(elMat_6_1));
+                   _data_mat[44] = ((real_t)(elMat_6_2));
+                   _data_mat[45] = ((real_t)(elMat_6_3));
+                   _data_mat[46] = ((real_t)(elMat_6_4));
+                   _data_mat[47] = ((real_t)(elMat_6_5));
+                   _data_mat[48] = ((real_t)(elMat_6_6));
+               
+               
+                   mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+                }
+             }
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+               
+                   std::vector< uint_t > _data_rowIdx( 7 );
+                   std::vector< uint_t > _data_colIdx( 7 );
+                   std::vector< real_t > _data_mat( 49 );
+               
+                   _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_rowIdx[2] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+                   _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]));
+                   _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_rowIdx[6] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[0] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_colIdx[1] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_colIdx[2] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]));
+                   _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]));
+                   _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[6] = ((uint64_t)(_data_src[ctr_0 + ctr_1*micro_edges_per_macro_edge - ((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)(tmp_moved_constant_143));
+                   _data_mat[1] = ((real_t)(tmp_moved_constant_144));
+                   _data_mat[2] = ((real_t)(tmp_moved_constant_145));
+                   _data_mat[3] = ((real_t)(tmp_moved_constant_146));
+                   _data_mat[4] = ((real_t)(tmp_moved_constant_147));
+                   _data_mat[5] = ((real_t)(tmp_moved_constant_148));
+                   _data_mat[6] = ((real_t)(tmp_moved_constant_149));
+                   _data_mat[7] = ((real_t)(tmp_moved_constant_150));
+                   _data_mat[8] = ((real_t)(tmp_moved_constant_151));
+                   _data_mat[9] = ((real_t)(tmp_moved_constant_152));
+                   _data_mat[10] = ((real_t)(tmp_moved_constant_153));
+                   _data_mat[11] = ((real_t)(tmp_moved_constant_154));
+                   _data_mat[12] = ((real_t)(tmp_moved_constant_155));
+                   _data_mat[13] = ((real_t)(tmp_moved_constant_156));
+                   _data_mat[14] = ((real_t)(tmp_moved_constant_157));
+                   _data_mat[15] = ((real_t)(tmp_moved_constant_158));
+                   _data_mat[16] = ((real_t)(tmp_moved_constant_159));
+                   _data_mat[17] = ((real_t)(tmp_moved_constant_160));
+                   _data_mat[18] = ((real_t)(tmp_moved_constant_161));
+                   _data_mat[19] = ((real_t)(tmp_moved_constant_162));
+                   _data_mat[20] = ((real_t)(tmp_moved_constant_163));
+                   _data_mat[21] = ((real_t)(tmp_moved_constant_164));
+                   _data_mat[22] = ((real_t)(tmp_moved_constant_165));
+                   _data_mat[23] = ((real_t)(tmp_moved_constant_166));
+                   _data_mat[24] = ((real_t)(tmp_moved_constant_167));
+                   _data_mat[25] = ((real_t)(tmp_moved_constant_168));
+                   _data_mat[26] = ((real_t)(tmp_moved_constant_169));
+                   _data_mat[27] = ((real_t)(tmp_moved_constant_170));
+                   _data_mat[28] = ((real_t)(tmp_moved_constant_171));
+                   _data_mat[29] = ((real_t)(tmp_moved_constant_172));
+                   _data_mat[30] = ((real_t)(tmp_moved_constant_173));
+                   _data_mat[31] = ((real_t)(tmp_moved_constant_174));
+                   _data_mat[32] = ((real_t)(tmp_moved_constant_175));
+                   _data_mat[33] = ((real_t)(tmp_moved_constant_176));
+                   _data_mat[34] = ((real_t)(tmp_moved_constant_177));
+                   _data_mat[35] = ((real_t)(tmp_moved_constant_178));
+                   _data_mat[36] = ((real_t)(tmp_moved_constant_179));
+                   _data_mat[37] = ((real_t)(tmp_moved_constant_180));
+                   _data_mat[38] = ((real_t)(tmp_moved_constant_181));
+                   _data_mat[39] = ((real_t)(tmp_moved_constant_182));
+                   _data_mat[40] = ((real_t)(tmp_moved_constant_183));
+                   _data_mat[41] = ((real_t)(tmp_moved_constant_184));
+                   _data_mat[42] = ((real_t)(tmp_moved_constant_185));
+                   _data_mat[43] = ((real_t)(tmp_moved_constant_186));
+                   _data_mat[44] = ((real_t)(tmp_moved_constant_187));
+                   _data_mat[45] = ((real_t)(tmp_moved_constant_188));
+                   _data_mat[46] = ((real_t)(tmp_moved_constant_189));
+                   _data_mat[47] = ((real_t)(tmp_moved_constant_190));
+                   _data_mat[48] = ((real_t)(tmp_moved_constant_191));
+               
+               
+                   mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+                }
+             }
+          }
+          for (int64_t ctr_0 = -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1)
+          {
+             {
+                {
+               
+                   const int64_t phantom_ctr_0 = ctr_0;
+                   real_t _data_float_loop_ctr_array_dim_0[4];
+                   _data_float_loop_ctr_array_dim_0[0] = (real_t) ctr_0+ 0;
+                   _data_float_loop_ctr_array_dim_0[1] = (real_t) ctr_0+ 1;
+                   _data_float_loop_ctr_array_dim_0[2] = (real_t) ctr_0+ 2;
+                   _data_float_loop_ctr_array_dim_0[3] = (real_t) ctr_0+ 3;
+                   real_t _data_float_loop_ctr_array_dim_1[4];
+                   _data_float_loop_ctr_array_dim_1[0] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[1] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[2] = (real_t) ctr_1;
+                   _data_float_loop_ctr_array_dim_1[3] = (real_t) ctr_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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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 + _data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0])*1.0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*_data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0];
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+                   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*_data_float_loop_ctr_array_dim_0[ctr_0 - phantom_ctr_0] + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*(1.0 + _data_float_loop_ctr_array_dim_1[ctr_0 - phantom_ctr_0])*1.0;
+               
+                   std::vector< uint_t > _data_rowIdx( 7 );
+                   std::vector< uint_t > _data_colIdx( 7 );
+                   std::vector< real_t > _data_mat( 49 );
+               
+                   _data_rowIdx[0] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_rowIdx[1] = ((uint64_t)(_data_dstVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_rowIdx[2] = ((uint64_t)(_data_dstVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_rowIdx[3] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_rowIdx[4] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_rowIdx[5] = ((uint64_t)(_data_dstEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_rowIdx[6] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[0] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[1] = ((uint64_t)(_data_srcVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]));
+                   _data_colIdx[2] = ((uint64_t)(_data_srcVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]));
+                   _data_colIdx[3] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[4] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]));
+                   _data_colIdx[5] = ((uint64_t)(_data_srcEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]));
+                   _data_colIdx[6] = ((uint64_t)(_data_src[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_1_0));
+                   _data_mat[8] = ((real_t)(elMat_1_1));
+                   _data_mat[9] = ((real_t)(elMat_1_2));
+                   _data_mat[10] = ((real_t)(elMat_1_3));
+                   _data_mat[11] = ((real_t)(elMat_1_4));
+                   _data_mat[12] = ((real_t)(elMat_1_5));
+                   _data_mat[13] = ((real_t)(elMat_1_6));
+                   _data_mat[14] = ((real_t)(elMat_2_0));
+                   _data_mat[15] = ((real_t)(elMat_2_1));
+                   _data_mat[16] = ((real_t)(elMat_2_2));
+                   _data_mat[17] = ((real_t)(elMat_2_3));
+                   _data_mat[18] = ((real_t)(elMat_2_4));
+                   _data_mat[19] = ((real_t)(elMat_2_5));
+                   _data_mat[20] = ((real_t)(elMat_2_6));
+                   _data_mat[21] = ((real_t)(elMat_3_0));
+                   _data_mat[22] = ((real_t)(elMat_3_1));
+                   _data_mat[23] = ((real_t)(elMat_3_2));
+                   _data_mat[24] = ((real_t)(elMat_3_3));
+                   _data_mat[25] = ((real_t)(elMat_3_4));
+                   _data_mat[26] = ((real_t)(elMat_3_5));
+                   _data_mat[27] = ((real_t)(elMat_3_6));
+                   _data_mat[28] = ((real_t)(elMat_4_0));
+                   _data_mat[29] = ((real_t)(elMat_4_1));
+                   _data_mat[30] = ((real_t)(elMat_4_2));
+                   _data_mat[31] = ((real_t)(elMat_4_3));
+                   _data_mat[32] = ((real_t)(elMat_4_4));
+                   _data_mat[33] = ((real_t)(elMat_4_5));
+                   _data_mat[34] = ((real_t)(elMat_4_6));
+                   _data_mat[35] = ((real_t)(elMat_5_0));
+                   _data_mat[36] = ((real_t)(elMat_5_1));
+                   _data_mat[37] = ((real_t)(elMat_5_2));
+                   _data_mat[38] = ((real_t)(elMat_5_3));
+                   _data_mat[39] = ((real_t)(elMat_5_4));
+                   _data_mat[40] = ((real_t)(elMat_5_5));
+                   _data_mat[41] = ((real_t)(elMat_5_6));
+                   _data_mat[42] = ((real_t)(elMat_6_0));
+                   _data_mat[43] = ((real_t)(elMat_6_1));
+                   _data_mat[44] = ((real_t)(elMat_6_2));
+                   _data_mat[45] = ((real_t)(elMat_6_3));
+                   _data_mat[46] = ((real_t)(elMat_6_4));
+                   _data_mat[47] = ((real_t)(elMat_6_5));
+                   _data_mat[48] = ((real_t)(elMat_6_6));
+               
+               
+                   mat->addValues( _data_rowIdx, _data_colIdx, _data_mat );
+                }
+             }
+          }
+       }
+    }
+}
+} // namespace operatorgeneration
+
+} // namespace hyteg