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