diff --git a/generate/generate.py b/generate/generate.py index 1c1f37aba02a0a25648e9662585b43da2018911e..936ed227ce1a0058f86e1cb91a2c61706b1c905f 100644 --- a/generate/generate.py +++ b/generate/generate.py @@ -258,6 +258,7 @@ def generate_operator( fe_spaces = { "P1": function_space.LagrangianFunctionSpace(1, symbolizer), "P2": function_space.LagrangianFunctionSpace(2, symbolizer), + "P2Vector": function_space.TensorialVectorFunctionSpace(function_space.LagrangianFunctionSpace(2, symbolizer)), "N1E1": function_space.N1E1Space(symbolizer), } geometries = { diff --git a/generate/requirements.txt b/generate/requirements.txt index f810065081434a240b51010339d460e1b68e2be2..20411daf858bf87d78c17473f249eb7a1491c46b 100644 --- a/generate/requirements.txt +++ b/generate/requirements.txt @@ -1,5 +1,5 @@ --extra-index-url https://test.pypi.org/simple/ -hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog +hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@1e6c4081b8c3a85e7a4632241684af9f5c74fe2e tomli >= 1.1.0 ; python_version < "3.11" clang-format diff --git a/operators/CMakeLists.txt b/operators/CMakeLists.txt index 2dfec301ba1a82f3b62a2b24dfa7b4b29825626e..b8a33d29263fbe077fe4628a9ddde5760822171c 100644 --- a/operators/CMakeLists.txt +++ b/operators/CMakeLists.txt @@ -13,6 +13,7 @@ add_subdirectory(div_k_grad) add_subdirectory(divergence) add_subdirectory(epsilon) add_subdirectory(full_stokes) +add_subdirectory(grad_rho_by_rho_dot_u) add_subdirectory(gradient) add_subdirectory(k_mass) add_subdirectory(mass) diff --git a/operators/grad_rho_by_rho_dot_u/CMakeLists.txt b/operators/grad_rho_by_rho_dot_u/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..7660ec9092fcaf95a21c18924db74024e203ef9e --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/CMakeLists.txt @@ -0,0 +1,30 @@ +add_library( opgen-grad_rho_by_rho_dot_u + + P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp + P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp + P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp + P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp + P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp + P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp +) + +target_sources(opgen-grad_rho_by_rho_dot_u PRIVATE + + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp + noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp +) + +if (HYTEG_BUILD_WITH_PETSC) + target_link_libraries(opgen-grad_rho_by_rho_dot_u PUBLIC PETSc::PETSc) +endif () +if (WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT) + target_compile_features(opgen-grad_rho_by_rho_dot_u PUBLIC cxx_std_23) +else () + target_compile_features(opgen-grad_rho_by_rho_dot_u PUBLIC cxx_std_17) +endif () diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp new file mode 100644 index 0000000000000000000000000000000000000000..43cad945b2cf3c72d623df73321bc1d24a9dec36 --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.cpp @@ -0,0 +1,401 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe +// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a +// warning in an internal standard library header (bits/stl_algobase.h). As a +// workaround, we disable the warning and include this header indirectly through +// a public header. +#include <waLBerlaDefinitions.h> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnonnull" +#endif +#include <cmath> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic pop +#endif + +#include "P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +P2VectorToP1ElementwiseGradRhoByRhoDotU::P2VectorToP1ElementwiseGradRhoByRhoDotU( + const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ) +: Operator( storage, minLevel, maxLevel ) +, rho( _rho ) +{} + +void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType ) const +{ + this->startTiming( "apply" ); + + // Make sure that halos are up-to-date + this->timingTree_->start( "pre-communication" ); + if ( this->storage_->hasGlobalCells() ) + { + // Note that the order of communication is important, since the face -> cell communication may overwrite + // parts of the halos that carry the macro-vertex and macro-edge unknowns. + src[0].communicate< Face, Cell >( level ); + src[0].communicate< Edge, Cell >( level ); + src[0].communicate< Vertex, Cell >( level ); + src[1].communicate< Face, Cell >( level ); + src[1].communicate< Edge, Cell >( level ); + src[1].communicate< Vertex, Cell >( level ); + src[2].communicate< Face, Cell >( level ); + src[2].communicate< Edge, Cell >( level ); + src[2].communicate< Vertex, Cell >( level ); + rho.communicate< Face, Cell >( level ); + rho.communicate< Edge, Cell >( level ); + rho.communicate< Vertex, Cell >( level ); + } + else + { + communication::syncVectorFunctionBetweenPrimitives( src, level, communication::syncDirection_t::LOW2HIGH ); + communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH ); + } + this->timingTree_->stop( "pre-communication" ); + + if ( updateType == Replace ) + { + // We need to zero the destination array (including halos). + // However, we must not zero out anything that is not flagged with the specified BCs. + // Therefore, we first zero out everything that flagged, and then, later, + // the halos of the highest dim primitives. + dst.interpolate( walberla::numeric_cast< real_t >( 0 ), level, flag ); + } + + if ( storage_->hasGlobalCells() ) + { + for ( auto& it : storage_->getCells() ) + { + Cell& cell = *it.second; + + // get hold of the actual numerical data in the functions + real_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_0 = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_1 = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_2 = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + real_t* _data_dst = cell.getData( dst.getCellDataID() )->getPointer( level ); + real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_rhoEdge = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + // Zero out dst halos only + // + // This is also necessary when using update type == Add. + // During additive comm we then skip zeroing the data on the lower-dim primitives. + for ( const auto& idx : vertexdof::macrocell::Iterator( level ) ) + { + if ( !vertexdof::macrocell::isOnCellFace( idx, level ).empty() ) + { + auto arrayIdx = vertexdof::macrocell::index( level, idx.x(), idx.y(), idx.z() ); + _data_dst[arrayIdx] = real_t( 0 ); + } + } + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) cell.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) cell.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_0comp2 = (real_t) cell.getCoordinates()[0][2]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) cell.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) cell.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_1comp2 = (real_t) cell.getCoordinates()[1][2]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) cell.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) cell.getCoordinates()[2][1]; + const real_t macro_vertex_coord_id_2comp2 = (real_t) cell.getCoordinates()[2][2]; + const real_t macro_vertex_coord_id_3comp0 = (real_t) cell.getCoordinates()[3][0]; + const real_t macro_vertex_coord_id_3comp1 = (real_t) cell.getCoordinates()[3][1]; + const real_t macro_vertex_coord_id_3comp2 = (real_t) cell.getCoordinates()[3][2]; + + this->timingTree_->start( "kernel" ); + + apply_macro_3D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_edge_2, + _data_src_vertex_0, + _data_src_vertex_1, + _data_src_vertex_2, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_0comp2, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_1comp2, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + macro_vertex_coord_id_2comp2, + macro_vertex_coord_id_3comp0, + macro_vertex_coord_id_3comp1, + macro_vertex_coord_id_3comp2, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float ); + this->timingTree_->stop( "kernel" ); + } + + // Push result to lower-dimensional primitives + // + this->timingTree_->start( "post-communication" ); + // Note: We could avoid communication here by implementing the apply() also for the respective + // lower dimensional primitives! + dst.communicateAdditively< Cell, Face >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Cell, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Cell, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + this->timingTree_->stop( "post-communication" ); + } + else + { + for ( auto& it : storage_->getFaces() ) + { + Face& face = *it.second; + + // get hold of the actual numerical data in the functions + real_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_edge_0 = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_edge_1 = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + real_t* _data_dst = face.getData( dst.getFaceDataID() )->getPointer( level ); + real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_rhoEdge = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + // Zero out dst halos only + // + // This is also necessary when using update type == Add. + // During additive comm we then skip zeroing the data on the lower-dim primitives. + for ( const auto& idx : vertexdof::macroface::Iterator( level ) ) + { + if ( vertexdof::macroface::isVertexOnBoundary( level, idx ) ) + { + auto arrayIdx = vertexdof::macroface::index( level, idx.x(), idx.y() ); + _data_dst[arrayIdx] = real_t( 0 ); + } + } + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) face.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) face.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) face.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) face.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) face.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) face.getCoordinates()[2][1]; + + this->timingTree_->start( "kernel" ); + + apply_macro_2D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_vertex_0, + _data_src_vertex_1, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float ); + this->timingTree_->stop( "kernel" ); + } + + // Push result to lower-dimensional primitives + // + this->timingTree_->start( "post-communication" ); + // Note: We could avoid communication here by implementing the apply() also for the respective + // lower dimensional primitives! + dst.communicateAdditively< Face, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Face, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + this->timingTree_->stop( "post-communication" ); + } + + this->stopTiming( "apply" ); +} +void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const +{ + this->startTiming( "toMatrix" ); + + // We currently ignore the flag provided! + if ( flag != All ) + { + WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" ); + } + + if ( storage_->hasGlobalCells() ) + { + this->timingTree_->start( "pre-communication" ); + rho.communicate< Face, Cell >( level ); + rho.communicate< Edge, Cell >( level ); + rho.communicate< Vertex, Cell >( level ); + this->timingTree_->stop( "pre-communication" ); + + for ( auto& it : storage_->getCells() ) + { + Cell& cell = *it.second; + + // get hold of the actual numerical data + idx_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_0 = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_1 = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_2 = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + idx_t* _data_dst = cell.getData( dst.getCellDataID() )->getPointer( level ); + real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_rhoEdge = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) cell.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) cell.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_0comp2 = (real_t) cell.getCoordinates()[0][2]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) cell.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) cell.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_1comp2 = (real_t) cell.getCoordinates()[1][2]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) cell.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) cell.getCoordinates()[2][1]; + const real_t macro_vertex_coord_id_2comp2 = (real_t) cell.getCoordinates()[2][2]; + const real_t macro_vertex_coord_id_3comp0 = (real_t) cell.getCoordinates()[3][0]; + const real_t macro_vertex_coord_id_3comp1 = (real_t) cell.getCoordinates()[3][1]; + const real_t macro_vertex_coord_id_3comp2 = (real_t) cell.getCoordinates()[3][2]; + + this->timingTree_->start( "kernel" ); + + toMatrix_macro_3D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_edge_2, + _data_src_vertex_0, + _data_src_vertex_1, + _data_src_vertex_2, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_0comp2, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_1comp2, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + macro_vertex_coord_id_2comp2, + macro_vertex_coord_id_3comp0, + macro_vertex_coord_id_3comp1, + macro_vertex_coord_id_3comp2, + mat, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float ); + this->timingTree_->stop( "kernel" ); + } + } + else + { + this->timingTree_->start( "pre-communication" ); + communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH ); + this->timingTree_->stop( "pre-communication" ); + + for ( auto& it : storage_->getFaces() ) + { + Face& face = *it.second; + + // get hold of the actual numerical data + idx_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_edge_0 = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_edge_1 = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + idx_t* _data_dst = face.getData( dst.getFaceDataID() )->getPointer( level ); + real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_rhoEdge = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) face.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) face.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) face.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) face.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) face.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) face.getCoordinates()[2][1]; + + this->timingTree_->start( "kernel" ); + + toMatrix_macro_2D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_vertex_0, + _data_src_vertex_1, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + mat, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float ); + this->timingTree_->stop( "kernel" ); + } + } + this->stopTiming( "toMatrix" ); +} + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp new file mode 100644 index 0000000000000000000000000000000000000000..1487e6b342c9b006323ac864a2ff5f895670483c --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +#pragma once + +#include "core/DataTypes.h" + +#include "hyteg/LikwidWrapper.hpp" +#include "hyteg/communication/Syncing.hpp" +#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp" +#include "hyteg/operators/Operator.hpp" +#include "hyteg/p1functionspace/P1Function.hpp" +#include "hyteg/p2functionspace/P2Function.hpp" +#include "hyteg/p2functionspace/P2VectorFunction.hpp" +#include "hyteg/primitivestorage/PrimitiveStorage.hpp" +#include "hyteg/sparseassembly/SparseMatrixProxy.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +/// RHS operator for the frozen velocity approach. +/// +/// Geometry map: IdentityMap +/// +/// Weak formulation +/// +/// u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2)) +/// v: test function (space: Lagrange, degree: 1) +/// rho: coefficient (space: Lagrange, degree: 2) +/// + +class P2VectorToP1ElementwiseGradRhoByRhoDotU : public Operator< P2VectorFunction< real_t >, P1Function< real_t > > +{ + public: + P2VectorToP1ElementwiseGradRhoByRhoDotU( const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ); + + void apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType = Replace ) const; + + void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const; + + protected: + private: + /// Kernel type: apply + /// - quadrature rule: Dunavant 3 | points: 4, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 356 380 16 0 0 0 0 0 + void apply_macro_2D( real_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + real_t* RESTRICT _data_src_edge_0, + real_t* RESTRICT _data_src_edge_1, + real_t* RESTRICT _data_src_vertex_0, + real_t* RESTRICT _data_src_vertex_1, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float ) const; + /// Kernel type: apply + /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 1153 1162 41 0 0 0 0 0 + void apply_macro_3D( real_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + real_t* RESTRICT _data_src_edge_0, + real_t* RESTRICT _data_src_edge_1, + real_t* RESTRICT _data_src_edge_2, + real_t* RESTRICT _data_src_vertex_0, + real_t* RESTRICT _data_src_vertex_1, + real_t* RESTRICT _data_src_vertex_2, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_0comp2, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_1comp2, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + real_t macro_vertex_coord_id_2comp2, + real_t macro_vertex_coord_id_3comp0, + real_t macro_vertex_coord_id_3comp1, + real_t macro_vertex_coord_id_3comp2, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float ) const; + /// Kernel type: toMatrix + /// - quadrature rule: Dunavant 3 | points: 4, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 320 344 16 0 0 0 0 3 + void toMatrix_macro_2D( idx_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + idx_t* RESTRICT _data_src_edge_0, + idx_t* RESTRICT _data_src_edge_1, + idx_t* RESTRICT _data_src_vertex_0, + idx_t* RESTRICT _data_src_vertex_1, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + std::shared_ptr< SparseMatrixProxy > mat, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float ) const; + /// Kernel type: toMatrix + /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 1033 1042 41 0 0 0 0 3 + void toMatrix_macro_3D( idx_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + idx_t* RESTRICT _data_src_edge_0, + idx_t* RESTRICT _data_src_edge_1, + idx_t* RESTRICT _data_src_edge_2, + idx_t* RESTRICT _data_src_vertex_0, + idx_t* RESTRICT _data_src_vertex_1, + idx_t* RESTRICT _data_src_vertex_2, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_0comp2, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_1comp2, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + real_t macro_vertex_coord_id_2comp2, + real_t macro_vertex_coord_id_3comp0, + real_t macro_vertex_coord_id_3comp1, + real_t macro_vertex_coord_id_3comp2, + std::shared_ptr< SparseMatrixProxy > mat, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float ) const; + + P2Function< real_t > rho; +}; + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2571420005e230aa4c5a9d18f6fc44ca232d8ddb --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.cpp @@ -0,0 +1,284 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe +// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a +// warning in an internal standard library header (bits/stl_algobase.h). As a +// workaround, we disable the warning and include this header indirectly through +// a public header. +#include <waLBerlaDefinitions.h> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnonnull" +#endif +#include <cmath> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic pop +#endif + +#include "P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap( + const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ) +: Operator( storage, minLevel, maxLevel ) +, rho( _rho ) +{} + +void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType ) const +{ + this->startTiming( "apply" ); + + // Make sure that halos are up-to-date + this->timingTree_->start( "pre-communication" ); + if ( this->storage_->hasGlobalCells() ) + { + WALBERLA_ABORT( "Not implemented." ); + } + else + { + communication::syncVectorFunctionBetweenPrimitives( src, level, communication::syncDirection_t::LOW2HIGH ); + communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH ); + } + this->timingTree_->stop( "pre-communication" ); + + if ( updateType == Replace ) + { + // We need to zero the destination array (including halos). + // However, we must not zero out anything that is not flagged with the specified BCs. + // Therefore, we first zero out everything that flagged, and then, later, + // the halos of the highest dim primitives. + dst.interpolate( walberla::numeric_cast< real_t >( 0 ), level, flag ); + } + + if ( storage_->hasGlobalCells() ) + { + WALBERLA_ABORT( "Not implemented." ); + } + else + { + for ( auto& it : storage_->getFaces() ) + { + Face& face = *it.second; + + // get hold of the actual numerical data in the functions + real_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_edge_0 = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_src_edge_1 = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + real_t* _data_dst = face.getData( dst.getFaceDataID() )->getPointer( level ); + real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_rhoEdge = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + // Zero out dst halos only + // + // This is also necessary when using update type == Add. + // During additive comm we then skip zeroing the data on the lower-dim primitives. + for ( const auto& idx : vertexdof::macroface::Iterator( level ) ) + { + if ( vertexdof::macroface::isVertexOnBoundary( level, idx ) ) + { + auto arrayIdx = vertexdof::macroface::index( level, idx.x(), idx.y() ); + _data_dst[arrayIdx] = real_t( 0 ); + } + } + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) face.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) face.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) face.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) face.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) face.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) face.getCoordinates()[2][1]; + WALBERLA_CHECK_NOT_NULLPTR( + std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() ), + "This operator requires the AnnulusMap to be registered as GeometryMap on every macro-cell." ) + real_t radRefVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRefVertex(); + real_t radRayVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRayVertex(); + real_t refVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[0]; + real_t rayVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[0]; + real_t thrVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[0]; + real_t refVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[1]; + real_t rayVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[1]; + real_t thrVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[1]; + + this->timingTree_->start( "kernel" ); + + apply_macro_2D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_vertex_0, + _data_src_vertex_1, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float, + radRayVertex, + radRefVertex, + rayVertex_0, + rayVertex_1, + refVertex_0, + refVertex_1, + thrVertex_0, + thrVertex_1 ); + this->timingTree_->stop( "kernel" ); + } + + // Push result to lower-dimensional primitives + // + this->timingTree_->start( "post-communication" ); + // Note: We could avoid communication here by implementing the apply() also for the respective + // lower dimensional primitives! + dst.communicateAdditively< Face, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Face, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + this->timingTree_->stop( "post-communication" ); + } + + this->stopTiming( "apply" ); +} +void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const +{ + this->startTiming( "toMatrix" ); + + // We currently ignore the flag provided! + if ( flag != All ) + { + WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" ); + } + + if ( storage_->hasGlobalCells() ) + { + this->timingTree_->start( "pre-communication" ); + rho.communicate< Face, Cell >( level ); + rho.communicate< Edge, Cell >( level ); + rho.communicate< Vertex, Cell >( level ); + this->timingTree_->stop( "pre-communication" ); + + WALBERLA_ABORT( "Not implemented." ); + } + else + { + this->timingTree_->start( "pre-communication" ); + communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH ); + this->timingTree_->stop( "pre-communication" ); + + for ( auto& it : storage_->getFaces() ) + { + Face& face = *it.second; + + // get hold of the actual numerical data + idx_t* _data_src_vertex_0 = face.getData( src[0].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_edge_0 = face.getData( src[0].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_vertex_1 = face.getData( src[1].getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + idx_t* _data_src_edge_1 = face.getData( src[1].getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + idx_t* _data_dst = face.getData( dst.getFaceDataID() )->getPointer( level ); + real_t* _data_rhoVertex = face.getData( rho.getVertexDoFFunction().getFaceDataID() )->getPointer( level ); + real_t* _data_rhoEdge = face.getData( rho.getEdgeDoFFunction().getFaceDataID() )->getPointer( level ); + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) face.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) face.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) face.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) face.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) face.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) face.getCoordinates()[2][1]; + WALBERLA_CHECK_NOT_NULLPTR( + std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() ), + "This operator requires the AnnulusMap to be registered as GeometryMap on every macro-cell." ) + real_t radRefVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRefVertex(); + real_t radRayVertex = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->radRayVertex(); + real_t refVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[0]; + real_t rayVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[0]; + real_t thrVertex_0 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[0]; + real_t refVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->refVertex()[1]; + real_t rayVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->rayVertex()[1]; + real_t thrVertex_1 = std::dynamic_pointer_cast< AnnulusMap >( face.getGeometryMap() )->thrVertex()[1]; + + this->timingTree_->start( "kernel" ); + + toMatrix_macro_2D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_vertex_0, + _data_src_vertex_1, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + mat, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float, + radRayVertex, + radRefVertex, + rayVertex_0, + rayVertex_1, + refVertex_0, + refVertex_1, + thrVertex_0, + thrVertex_1 ); + this->timingTree_->stop( "kernel" ); + } + } + this->stopTiming( "toMatrix" ); +} + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp new file mode 100644 index 0000000000000000000000000000000000000000..7b5bb7c13a1f5f3d6e02f307b8d5024829f455d4 --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp @@ -0,0 +1,146 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +#pragma once + +#include "core/DataTypes.h" + +#include "hyteg/LikwidWrapper.hpp" +#include "hyteg/communication/Syncing.hpp" +#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp" +#include "hyteg/geometry/AnnulusMap.hpp" +#include "hyteg/operators/Operator.hpp" +#include "hyteg/p1functionspace/P1Function.hpp" +#include "hyteg/p2functionspace/P2Function.hpp" +#include "hyteg/p2functionspace/P2VectorFunction.hpp" +#include "hyteg/primitivestorage/PrimitiveStorage.hpp" +#include "hyteg/sparseassembly/SparseMatrixProxy.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +/// RHS operator for the frozen velocity approach. +/// +/// Geometry map: AnnulusMap +/// +/// Weak formulation +/// +/// u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2)) +/// v: test function (space: Lagrange, degree: 1) +/// rho: coefficient (space: Lagrange, degree: 2) +/// + +class P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap : public Operator< P2VectorFunction< real_t >, P1Function< real_t > > +{ + public: + P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap( const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ); + + void apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType = Replace ) const; + + void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const; + + protected: + private: + /// Kernel type: apply + /// - quadrature rule: Dunavant 3 | points: 4, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 560 732 24 12 0 0 0 0 + void apply_macro_2D( real_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + real_t* RESTRICT _data_src_edge_0, + real_t* RESTRICT _data_src_edge_1, + real_t* RESTRICT _data_src_vertex_0, + real_t* RESTRICT _data_src_vertex_1, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float, + real_t radRayVertex, + real_t radRefVertex, + real_t rayVertex_0, + real_t rayVertex_1, + real_t refVertex_0, + real_t refVertex_1, + real_t thrVertex_0, + real_t thrVertex_1 ) const; + /// Kernel type: toMatrix + /// - quadrature rule: Dunavant 3 | points: 4, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 524 696 24 12 0 0 0 3 + void toMatrix_macro_2D( idx_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + idx_t* RESTRICT _data_src_edge_0, + idx_t* RESTRICT _data_src_edge_1, + idx_t* RESTRICT _data_src_vertex_0, + idx_t* RESTRICT _data_src_vertex_1, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + std::shared_ptr< SparseMatrixProxy > mat, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float, + real_t radRayVertex, + real_t radRefVertex, + real_t rayVertex_0, + real_t rayVertex_1, + real_t refVertex_0, + real_t refVertex_1, + real_t thrVertex_0, + real_t thrVertex_1 ) const; + + P2Function< real_t > rho; +}; + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2a68954c8e4dd9640d90c9232b403c649fd3406c --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.cpp @@ -0,0 +1,353 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +// Unfortunately, the inverse diagonal kernel wrapper triggers a GCC bug (maybe +// (related to) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107087) causing a +// warning in an internal standard library header (bits/stl_algobase.h). As a +// workaround, we disable the warning and include this header indirectly through +// a public header. +#include <waLBerlaDefinitions.h> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnonnull" +#endif +#include <cmath> +#ifdef WALBERLA_CXX_COMPILER_IS_GNU +#pragma GCC diagnostic pop +#endif + +#include "P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap( + const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ) +: Operator( storage, minLevel, maxLevel ) +, rho( _rho ) +{} + +void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType ) const +{ + this->startTiming( "apply" ); + + // Make sure that halos are up-to-date + this->timingTree_->start( "pre-communication" ); + if ( this->storage_->hasGlobalCells() ) + { + // Note that the order of communication is important, since the face -> cell communication may overwrite + // parts of the halos that carry the macro-vertex and macro-edge unknowns. + src[0].communicate< Face, Cell >( level ); + src[0].communicate< Edge, Cell >( level ); + src[0].communicate< Vertex, Cell >( level ); + src[1].communicate< Face, Cell >( level ); + src[1].communicate< Edge, Cell >( level ); + src[1].communicate< Vertex, Cell >( level ); + src[2].communicate< Face, Cell >( level ); + src[2].communicate< Edge, Cell >( level ); + src[2].communicate< Vertex, Cell >( level ); + rho.communicate< Face, Cell >( level ); + rho.communicate< Edge, Cell >( level ); + rho.communicate< Vertex, Cell >( level ); + } + else + { + WALBERLA_ABORT( "Not implemented." ); + } + this->timingTree_->stop( "pre-communication" ); + + if ( updateType == Replace ) + { + // We need to zero the destination array (including halos). + // However, we must not zero out anything that is not flagged with the specified BCs. + // Therefore, we first zero out everything that flagged, and then, later, + // the halos of the highest dim primitives. + dst.interpolate( walberla::numeric_cast< real_t >( 0 ), level, flag ); + } + + if ( storage_->hasGlobalCells() ) + { + for ( auto& it : storage_->getCells() ) + { + Cell& cell = *it.second; + + // get hold of the actual numerical data in the functions + real_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_0 = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_1 = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_src_edge_2 = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + real_t* _data_dst = cell.getData( dst.getCellDataID() )->getPointer( level ); + real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_rhoEdge = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + // Zero out dst halos only + // + // This is also necessary when using update type == Add. + // During additive comm we then skip zeroing the data on the lower-dim primitives. + for ( const auto& idx : vertexdof::macrocell::Iterator( level ) ) + { + if ( !vertexdof::macrocell::isOnCellFace( idx, level ).empty() ) + { + auto arrayIdx = vertexdof::macrocell::index( level, idx.x(), idx.y(), idx.z() ); + _data_dst[arrayIdx] = real_t( 0 ); + } + } + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) cell.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) cell.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_0comp2 = (real_t) cell.getCoordinates()[0][2]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) cell.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) cell.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_1comp2 = (real_t) cell.getCoordinates()[1][2]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) cell.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) cell.getCoordinates()[2][1]; + const real_t macro_vertex_coord_id_2comp2 = (real_t) cell.getCoordinates()[2][2]; + const real_t macro_vertex_coord_id_3comp0 = (real_t) cell.getCoordinates()[3][0]; + const real_t macro_vertex_coord_id_3comp1 = (real_t) cell.getCoordinates()[3][1]; + const real_t macro_vertex_coord_id_3comp2 = (real_t) cell.getCoordinates()[3][2]; + WALBERLA_CHECK_NOT_NULLPTR( + std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() ), + "This operator requires the IcosahedralShellMap to be registered as GeometryMap on every macro-cell." ) + real_t radRefVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRefVertex(); + real_t radRayVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRayVertex(); + real_t refVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[0]; + real_t rayVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[0]; + real_t thrVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[0]; + real_t forVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[0]; + real_t refVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[1]; + real_t rayVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[1]; + real_t thrVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[1]; + real_t forVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[1]; + real_t refVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[2]; + real_t rayVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[2]; + real_t thrVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[2]; + real_t forVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[2]; + + this->timingTree_->start( "kernel" ); + + apply_macro_3D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_edge_2, + _data_src_vertex_0, + _data_src_vertex_1, + _data_src_vertex_2, + forVertex_0, + forVertex_1, + forVertex_2, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_0comp2, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_1comp2, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + macro_vertex_coord_id_2comp2, + macro_vertex_coord_id_3comp0, + macro_vertex_coord_id_3comp1, + macro_vertex_coord_id_3comp2, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float, + radRayVertex, + radRefVertex, + rayVertex_0, + rayVertex_1, + rayVertex_2, + refVertex_0, + refVertex_1, + refVertex_2, + thrVertex_0, + thrVertex_1, + thrVertex_2 ); + this->timingTree_->stop( "kernel" ); + } + + // Push result to lower-dimensional primitives + // + this->timingTree_->start( "post-communication" ); + // Note: We could avoid communication here by implementing the apply() also for the respective + // lower dimensional primitives! + dst.communicateAdditively< Cell, Face >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Cell, Edge >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + dst.communicateAdditively< Cell, Vertex >( level, DoFType::All ^ flag, *storage_, updateType == Replace ); + this->timingTree_->stop( "post-communication" ); + } + else + { + WALBERLA_ABORT( "Not implemented." ); + } + + this->stopTiming( "apply" ); +} +void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const +{ + this->startTiming( "toMatrix" ); + + // We currently ignore the flag provided! + if ( flag != All ) + { + WALBERLA_LOG_WARNING_ON_ROOT( "Input flag ignored in toMatrix; using flag = All" ); + } + + if ( storage_->hasGlobalCells() ) + { + this->timingTree_->start( "pre-communication" ); + rho.communicate< Face, Cell >( level ); + rho.communicate< Edge, Cell >( level ); + rho.communicate< Vertex, Cell >( level ); + this->timingTree_->stop( "pre-communication" ); + + for ( auto& it : storage_->getCells() ) + { + Cell& cell = *it.second; + + // get hold of the actual numerical data + idx_t* _data_src_vertex_0 = cell.getData( src[0].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_0 = cell.getData( src[0].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_vertex_1 = cell.getData( src[1].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_1 = cell.getData( src[1].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_vertex_2 = cell.getData( src[2].getVertexDoFFunction().getCellDataID() )->getPointer( level ); + idx_t* _data_src_edge_2 = cell.getData( src[2].getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + idx_t* _data_dst = cell.getData( dst.getCellDataID() )->getPointer( level ); + real_t* _data_rhoVertex = cell.getData( rho.getVertexDoFFunction().getCellDataID() )->getPointer( level ); + real_t* _data_rhoEdge = cell.getData( rho.getEdgeDoFFunction().getCellDataID() )->getPointer( level ); + + const auto micro_edges_per_macro_edge = (int64_t) levelinfo::num_microedges_per_edge( level ); + const auto micro_edges_per_macro_edge_float = (real_t) levelinfo::num_microedges_per_edge( level ); + const real_t macro_vertex_coord_id_0comp0 = (real_t) cell.getCoordinates()[0][0]; + const real_t macro_vertex_coord_id_0comp1 = (real_t) cell.getCoordinates()[0][1]; + const real_t macro_vertex_coord_id_0comp2 = (real_t) cell.getCoordinates()[0][2]; + const real_t macro_vertex_coord_id_1comp0 = (real_t) cell.getCoordinates()[1][0]; + const real_t macro_vertex_coord_id_1comp1 = (real_t) cell.getCoordinates()[1][1]; + const real_t macro_vertex_coord_id_1comp2 = (real_t) cell.getCoordinates()[1][2]; + const real_t macro_vertex_coord_id_2comp0 = (real_t) cell.getCoordinates()[2][0]; + const real_t macro_vertex_coord_id_2comp1 = (real_t) cell.getCoordinates()[2][1]; + const real_t macro_vertex_coord_id_2comp2 = (real_t) cell.getCoordinates()[2][2]; + const real_t macro_vertex_coord_id_3comp0 = (real_t) cell.getCoordinates()[3][0]; + const real_t macro_vertex_coord_id_3comp1 = (real_t) cell.getCoordinates()[3][1]; + const real_t macro_vertex_coord_id_3comp2 = (real_t) cell.getCoordinates()[3][2]; + WALBERLA_CHECK_NOT_NULLPTR( + std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() ), + "This operator requires the IcosahedralShellMap to be registered as GeometryMap on every macro-cell." ) + real_t radRefVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRefVertex(); + real_t radRayVertex = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->radRayVertex(); + real_t refVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[0]; + real_t rayVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[0]; + real_t thrVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[0]; + real_t forVertex_0 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[0]; + real_t refVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[1]; + real_t rayVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[1]; + real_t thrVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[1]; + real_t forVertex_1 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[1]; + real_t refVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->refVertex()[2]; + real_t rayVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->rayVertex()[2]; + real_t thrVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->thrVertex()[2]; + real_t forVertex_2 = std::dynamic_pointer_cast< IcosahedralShellMap >( cell.getGeometryMap() )->forVertex()[2]; + + this->timingTree_->start( "kernel" ); + + toMatrix_macro_3D( + + _data_dst, + _data_rhoEdge, + _data_rhoVertex, + _data_src_edge_0, + _data_src_edge_1, + _data_src_edge_2, + _data_src_vertex_0, + _data_src_vertex_1, + _data_src_vertex_2, + forVertex_0, + forVertex_1, + forVertex_2, + macro_vertex_coord_id_0comp0, + macro_vertex_coord_id_0comp1, + macro_vertex_coord_id_0comp2, + macro_vertex_coord_id_1comp0, + macro_vertex_coord_id_1comp1, + macro_vertex_coord_id_1comp2, + macro_vertex_coord_id_2comp0, + macro_vertex_coord_id_2comp1, + macro_vertex_coord_id_2comp2, + macro_vertex_coord_id_3comp0, + macro_vertex_coord_id_3comp1, + macro_vertex_coord_id_3comp2, + mat, + micro_edges_per_macro_edge, + micro_edges_per_macro_edge_float, + radRayVertex, + radRefVertex, + rayVertex_0, + rayVertex_1, + rayVertex_2, + refVertex_0, + refVertex_1, + refVertex_2, + thrVertex_0, + thrVertex_1, + thrVertex_2 ); + this->timingTree_->stop( "kernel" ); + } + } + else + { + this->timingTree_->start( "pre-communication" ); + communication::syncFunctionBetweenPrimitives( rho, level, communication::syncDirection_t::LOW2HIGH ); + this->timingTree_->stop( "pre-communication" ); + + WALBERLA_ABORT( "Not implemented." ); + } + this->stopTiming( "toMatrix" ); +} + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp new file mode 100644 index 0000000000000000000000000000000000000000..ed20b07a743faa0c248beacd092e4ac32e7ad983 --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + +#pragma once + +#include "core/DataTypes.h" + +#include "hyteg/LikwidWrapper.hpp" +#include "hyteg/communication/Syncing.hpp" +#include "hyteg/edgedofspace/EdgeDoFMacroCell.hpp" +#include "hyteg/geometry/IcosahedralShellMap.hpp" +#include "hyteg/operators/Operator.hpp" +#include "hyteg/p1functionspace/P1Function.hpp" +#include "hyteg/p2functionspace/P2Function.hpp" +#include "hyteg/p2functionspace/P2VectorFunction.hpp" +#include "hyteg/primitivestorage/PrimitiveStorage.hpp" +#include "hyteg/sparseassembly/SparseMatrixProxy.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +/// RHS operator for the frozen velocity approach. +/// +/// Geometry map: IcosahedralShellMap +/// +/// Weak formulation +/// +/// u: trial function (space: TensorialVectorSpace(Lagrange, degree: 2)) +/// v: test function (space: Lagrange, degree: 1) +/// rho: coefficient (space: Lagrange, degree: 2) +/// + +class P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap +: public Operator< P2VectorFunction< real_t >, P1Function< real_t > > +{ + public: + P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap( const std::shared_ptr< PrimitiveStorage >& storage, + size_t minLevel, + size_t maxLevel, + const P2Function< real_t >& _rho ); + + void apply( const P2VectorFunction< real_t >& src, + const P1Function< real_t >& dst, + uint_t level, + DoFType flag, + UpdateType updateType = Replace ) const; + + void toMatrix( const std::shared_ptr< SparseMatrixProxy >& mat, + const P2VectorFunction< idx_t >& src, + const P1Function< idx_t >& dst, + uint_t level, + DoFType flag ) const; + + protected: + private: + /// Kernel type: apply + /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 1938 2537 51 10 0 0 0 0 + void apply_macro_3D( real_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + real_t* RESTRICT _data_src_edge_0, + real_t* RESTRICT _data_src_edge_1, + real_t* RESTRICT _data_src_edge_2, + real_t* RESTRICT _data_src_vertex_0, + real_t* RESTRICT _data_src_vertex_1, + real_t* RESTRICT _data_src_vertex_2, + real_t forVertex_0, + real_t forVertex_1, + real_t forVertex_2, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_0comp2, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_1comp2, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + real_t macro_vertex_coord_id_2comp2, + real_t macro_vertex_coord_id_3comp0, + real_t macro_vertex_coord_id_3comp1, + real_t macro_vertex_coord_id_3comp2, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float, + real_t radRayVertex, + real_t radRefVertex, + real_t rayVertex_0, + real_t rayVertex_1, + real_t rayVertex_2, + real_t refVertex_0, + real_t refVertex_1, + real_t refVertex_2, + real_t thrVertex_0, + real_t thrVertex_1, + real_t thrVertex_2 ) const; + /// Kernel type: toMatrix + /// - quadrature rule: Hammer-Marlowe-Stroud 3 | points: 5, degree: 3 + /// - operations per element: + /// adds muls divs pows abs assignments function_calls unknown_ops + /// ------ ------ ------ ------ ----- ------------- ---------------- ------------- + /// 1818 2417 51 10 0 0 0 3 + void toMatrix_macro_3D( idx_t* RESTRICT _data_dst, + real_t* RESTRICT _data_rhoEdge, + real_t* RESTRICT _data_rhoVertex, + idx_t* RESTRICT _data_src_edge_0, + idx_t* RESTRICT _data_src_edge_1, + idx_t* RESTRICT _data_src_edge_2, + idx_t* RESTRICT _data_src_vertex_0, + idx_t* RESTRICT _data_src_vertex_1, + idx_t* RESTRICT _data_src_vertex_2, + real_t forVertex_0, + real_t forVertex_1, + real_t forVertex_2, + real_t macro_vertex_coord_id_0comp0, + real_t macro_vertex_coord_id_0comp1, + real_t macro_vertex_coord_id_0comp2, + real_t macro_vertex_coord_id_1comp0, + real_t macro_vertex_coord_id_1comp1, + real_t macro_vertex_coord_id_1comp2, + real_t macro_vertex_coord_id_2comp0, + real_t macro_vertex_coord_id_2comp1, + real_t macro_vertex_coord_id_2comp2, + real_t macro_vertex_coord_id_3comp0, + real_t macro_vertex_coord_id_3comp1, + real_t macro_vertex_coord_id_3comp2, + std::shared_ptr< SparseMatrixProxy > mat, + int64_t micro_edges_per_macro_edge, + real_t micro_edges_per_macro_edge_float, + real_t radRayVertex, + real_t radRefVertex, + real_t rayVertex_0, + real_t rayVertex_1, + real_t rayVertex_2, + real_t refVertex_0, + real_t refVertex_1, + real_t refVertex_2, + real_t thrVertex_0, + real_t thrVertex_1, + real_t thrVertex_2 ) const; + + P2Function< real_t > rho; +}; + +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..918e7cb31e3e7dbdea61e0a3598737d509ff177f --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_apply_macro_2D.cpp @@ -0,0 +1,574 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::apply_macro_2D( real_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, real_t * RESTRICT _data_src_edge_0, real_t * RESTRICT _data_src_edge_1, real_t * RESTRICT _data_src_vertex_0, real_t * RESTRICT _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t refVertex_0, real_t refVertex_1, real_t thrVertex_0, real_t thrVertex_1 ) const +{ + { + const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669}; + + const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001}; + + const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001}; + + { + /* FaceType.GRAY */ + const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY; + const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY; + const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY; + const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY; + const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY); + const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_3 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_9 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_10 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q]; + const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1; + const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0); + const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q]; + const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3); + const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4; + const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000); + const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_8 = -tmp_qloop_7; + const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1)); + const real_t tmp_qloop_10 = -radRayVertex + radRefVertex; + const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_11*1.0; + const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6; + const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13; + const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000); + const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3)); + const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16; + const real_t tmp_qloop_18 = tmp_qloop_17*1.0; + const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8; + const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18; + const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15; + const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23; + const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0; + const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4; + const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27; + const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7; + const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3; + const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30; + const real_t tmp_qloop_32 = tmp_qloop_17*2.0; + const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30; + const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8; + const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q]; + const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_40 = tmp_qloop_39*2.0; + const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_42 = tmp_qloop_41*2.0; + const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0); + const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45; + const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45; + const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q]; + const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q]; + const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44; + const real_t tmp_qloop_52 = tmp_qloop_39*4.0; + const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52; + const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q]; + const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q]; + const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q]; + const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54; + const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4; + const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19; + const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3; + const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3; + const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0; + const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21); + const real_t abs_det_jac_blending = tmp_qloop_21; + const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22; + const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22; + const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22; + const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_0); + const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55; + const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59; + const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61; + const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22; + const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_1); + const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57; + const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59; + const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61; + const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28; + const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31; + const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34; + const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35; + const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34; + const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36; + const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36; + const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33; + const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56; + const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56; + const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56; + const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56; + const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56; + const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56; + const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58; + const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58; + const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58; + const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58; + const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58; + const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58; + const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60; + const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60; + const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60; + const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62; + const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60; + const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60; + const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63; + const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63; + const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63; + const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64; + const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63; + const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63; + const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62; + const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62; + const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62; + const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65; + const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62; + const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62; + const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64; + const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64; + const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64; + const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65; + const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64; + const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + } + } + { + /* FaceType.BLUE */ + const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE; + const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE; + const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE; + const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE; + const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE; + const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE; + const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE; + const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE; + const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE); + const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t src_dof_3 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t src_dof_9 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_10 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q]; + const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1; + const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0); + const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q]; + const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3); + const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4; + const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000); + const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_8 = -tmp_qloop_7; + const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1)); + const real_t tmp_qloop_10 = -radRayVertex + radRefVertex; + const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_11*1.0; + const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6; + const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13; + const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000); + const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3)); + const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16; + const real_t tmp_qloop_18 = tmp_qloop_17*1.0; + const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8; + const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18; + const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15; + const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23; + const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0; + const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4; + const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27; + const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7; + const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3; + const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30; + const real_t tmp_qloop_32 = tmp_qloop_17*2.0; + const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30; + const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8; + const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q]; + const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_40 = tmp_qloop_39*2.0; + const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_42 = tmp_qloop_41*2.0; + const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0); + const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45; + const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45; + const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q]; + const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q]; + const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44; + const real_t tmp_qloop_52 = tmp_qloop_39*4.0; + const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52; + const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q]; + const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q]; + const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q]; + const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54; + const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4; + const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19; + const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3; + const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3; + const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0; + const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21); + const real_t abs_det_jac_blending = tmp_qloop_21; + const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22; + const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22; + const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22; + const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_0); + const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55; + const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59; + const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61; + const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22; + const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_1); + const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57; + const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59; + const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61; + const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28; + const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31; + const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34; + const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35; + const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34; + const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36; + const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36; + const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33; + const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56; + const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56; + const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56; + const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56; + const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56; + const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56; + const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58; + const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58; + const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58; + const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58; + const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58; + const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58; + const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60; + const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60; + const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60; + const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62; + const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60; + const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60; + const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63; + const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63; + const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63; + const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64; + const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63; + const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63; + const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62; + const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62; + const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62; + const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65; + const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62; + const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62; + const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64; + const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64; + const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64; + const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65; + const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64; + const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..832f73059301307e4fbdb377338cce11c1565ac0 --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap_toMatrix_macro_2D.cpp @@ -0,0 +1,738 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotUAnnulusMap::toMatrix_macro_2D( idx_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, idx_t * RESTRICT _data_src_edge_0, idx_t * RESTRICT _data_src_edge_1, idx_t * RESTRICT _data_src_vertex_0, idx_t * RESTRICT _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t refVertex_0, real_t refVertex_1, real_t thrVertex_0, real_t thrVertex_1 ) const +{ + { + const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669}; + + const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001}; + + const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001}; + + { + /* FaceType.GRAY */ + const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY; + const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY; + const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY; + const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY; + const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY); + const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q]; + const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1; + const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0); + const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q]; + const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3); + const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4; + const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000); + const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_8 = -tmp_qloop_7; + const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1)); + const real_t tmp_qloop_10 = -radRayVertex + radRefVertex; + const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_11*1.0; + const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6; + const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13; + const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000); + const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3)); + const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16; + const real_t tmp_qloop_18 = tmp_qloop_17*1.0; + const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8; + const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18; + const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15; + const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23; + const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0; + const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4; + const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27; + const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7; + const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3; + const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30; + const real_t tmp_qloop_32 = tmp_qloop_17*2.0; + const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30; + const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8; + const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q]; + const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_40 = tmp_qloop_39*2.0; + const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_42 = tmp_qloop_41*2.0; + const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0); + const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45; + const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45; + const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q]; + const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q]; + const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44; + const real_t tmp_qloop_52 = tmp_qloop_39*4.0; + const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52; + const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q]; + const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q]; + const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q]; + const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54; + const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4; + const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19; + const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3; + const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3; + const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0; + const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21); + const real_t abs_det_jac_blending = tmp_qloop_21; + const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22; + const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22; + const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22; + const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_0 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_0); + const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55; + const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59; + const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61; + const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22; + const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_0_1_GRAY*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_GRAY*jac_blending_inv_0_1 + jac_affine_inv_1_1_GRAY*jac_blending_inv_1_1); + const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57; + const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59; + const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61; + const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28; + const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31; + const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34; + const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35; + const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34; + const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36; + const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36; + const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33; + const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56; + const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56; + const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56; + const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56; + const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56; + const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56; + const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58; + const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58; + const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58; + const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58; + const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58; + const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58; + const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60; + const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60; + const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60; + const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62; + const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60; + const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60; + const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63; + const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63; + const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63; + const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64; + const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63; + const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63; + const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62; + const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62; + const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62; + const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65; + const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62; + const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62; + const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64; + const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64; + const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64; + const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65; + const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64; + const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + + std::vector< uint_t > _data_rowIdx( 3 ); + std::vector< uint_t > _data_colIdx( 12 ); + std::vector< real_t > _data_mat( 36 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_1_0)); + _data_mat[13] = ((real_t)(elMat_1_1)); + _data_mat[14] = ((real_t)(elMat_1_2)); + _data_mat[15] = ((real_t)(elMat_1_3)); + _data_mat[16] = ((real_t)(elMat_1_4)); + _data_mat[17] = ((real_t)(elMat_1_5)); + _data_mat[18] = ((real_t)(elMat_1_6)); + _data_mat[19] = ((real_t)(elMat_1_7)); + _data_mat[20] = ((real_t)(elMat_1_8)); + _data_mat[21] = ((real_t)(elMat_1_9)); + _data_mat[22] = ((real_t)(elMat_1_10)); + _data_mat[23] = ((real_t)(elMat_1_11)); + _data_mat[24] = ((real_t)(elMat_2_0)); + _data_mat[25] = ((real_t)(elMat_2_1)); + _data_mat[26] = ((real_t)(elMat_2_2)); + _data_mat[27] = ((real_t)(elMat_2_3)); + _data_mat[28] = ((real_t)(elMat_2_4)); + _data_mat[29] = ((real_t)(elMat_2_5)); + _data_mat[30] = ((real_t)(elMat_2_6)); + _data_mat[31] = ((real_t)(elMat_2_7)); + _data_mat[32] = ((real_t)(elMat_2_8)); + _data_mat[33] = ((real_t)(elMat_2_9)); + _data_mat[34] = ((real_t)(elMat_2_10)); + _data_mat[35] = ((real_t)(elMat_2_11)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* FaceType.BLUE */ + const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE; + const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE; + const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE; + const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE; + const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE; + const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE; + const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE; + const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE; + const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE); + const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q]; + const real_t tmp_qloop_1 = -rayVertex_1 + thrVertex_1; + const real_t tmp_qloop_2 = (tmp_qloop_0*tmp_qloop_0); + const real_t tmp_qloop_3 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q]; + const real_t tmp_qloop_4 = (tmp_qloop_3*tmp_qloop_3); + const real_t tmp_qloop_5 = tmp_qloop_2 + tmp_qloop_4; + const real_t tmp_qloop_6 = pow(tmp_qloop_5, -0.50000000000000000); + const real_t tmp_qloop_7 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_8 = -tmp_qloop_7; + const real_t tmp_qloop_9 = 1.0 / (tmp_qloop_1*(-rayVertex_0 + refVertex_0) - tmp_qloop_8*(-rayVertex_1 + refVertex_1)); + const real_t tmp_qloop_10 = -radRayVertex + radRefVertex; + const real_t tmp_qloop_11 = tmp_qloop_10*tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_11*1.0; + const real_t tmp_qloop_13 = tmp_qloop_12*tmp_qloop_6; + const real_t tmp_qloop_14 = tmp_qloop_1*tmp_qloop_13; + const real_t tmp_qloop_15 = pow(tmp_qloop_5, -1.5000000000000000); + const real_t tmp_qloop_16 = radRayVertex + tmp_qloop_11*(tmp_qloop_1*(-rayVertex_0 + tmp_qloop_0) - tmp_qloop_8*(-rayVertex_1 + tmp_qloop_3)); + const real_t tmp_qloop_17 = tmp_qloop_15*tmp_qloop_16; + const real_t tmp_qloop_18 = tmp_qloop_17*1.0; + const real_t tmp_qloop_19 = tmp_qloop_13*tmp_qloop_8; + const real_t tmp_qloop_20 = tmp_qloop_0*tmp_qloop_18; + const real_t tmp_qloop_23 = tmp_qloop_12*tmp_qloop_15; + const real_t tmp_qloop_24 = tmp_qloop_1*tmp_qloop_23; + const real_t tmp_qloop_25 = tmp_qloop_2*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_16*pow(tmp_qloop_5, -2.5000000000000000)*3.0; + const real_t tmp_qloop_27 = tmp_qloop_0*tmp_qloop_26*tmp_qloop_4; + const real_t tmp_qloop_28 = tmp_qloop_24*tmp_qloop_4 - tmp_qloop_27; + const real_t tmp_qloop_29 = tmp_qloop_23*tmp_qloop_7; + const real_t tmp_qloop_30 = tmp_qloop_0*tmp_qloop_3; + const real_t tmp_qloop_31 = tmp_qloop_24*tmp_qloop_30; + const real_t tmp_qloop_32 = tmp_qloop_17*2.0; + const real_t tmp_qloop_33 = tmp_qloop_2*tmp_qloop_26*tmp_qloop_3; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_3 - tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_29*tmp_qloop_30; + const real_t tmp_qloop_36 = tmp_qloop_23*tmp_qloop_30*tmp_qloop_8; + const real_t tmp_qloop_37 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_38 = tmp_qloop_37*_data_q_p_1[q]; + const real_t tmp_qloop_39 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_40 = tmp_qloop_39*2.0; + const real_t tmp_qloop_41 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_42 = tmp_qloop_41*2.0; + const real_t tmp_qloop_43 = tmp_qloop_38 + tmp_qloop_40 + tmp_qloop_42 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_44 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_45 = rho_dof_0*(tmp_qloop_37 + tmp_qloop_44 - 3.0); + const real_t tmp_qloop_46 = rho_dof_1*(tmp_qloop_37 - 1.0) + rho_dof_3*tmp_qloop_44 - rho_dof_4*tmp_qloop_44 + rho_dof_5*(-tmp_qloop_44 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_45; + const real_t tmp_qloop_47 = rho_dof_2*(tmp_qloop_44 - 1.0) + rho_dof_3*tmp_qloop_37 + rho_dof_4*(-tmp_qloop_37 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_37 + tmp_qloop_45; + const real_t tmp_qloop_49 = tmp_qloop_40 - _data_q_p_0[q]; + const real_t tmp_qloop_50 = tmp_qloop_42 - _data_q_p_1[q]; + const real_t tmp_qloop_51 = -tmp_qloop_38 + tmp_qloop_41*-4.0 + tmp_qloop_44; + const real_t tmp_qloop_52 = tmp_qloop_39*4.0; + const real_t tmp_qloop_53 = tmp_qloop_37 - tmp_qloop_38 - tmp_qloop_52; + const real_t tmp_qloop_54 = 1.0 / (rho_dof_0*tmp_qloop_43 + rho_dof_1*tmp_qloop_49 + rho_dof_2*tmp_qloop_50 + rho_dof_3*tmp_qloop_38 + rho_dof_4*tmp_qloop_51 + rho_dof_5*tmp_qloop_53)*_data_q_w[q]; + const real_t tmp_qloop_55 = tmp_qloop_54*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_59 = tmp_qloop_54*_data_q_p_0[q]; + const real_t tmp_qloop_61 = tmp_qloop_54*_data_q_p_1[q]; + const real_t tmp_qloop_65 = tmp_qloop_37*tmp_qloop_41*tmp_qloop_54; + const real_t jac_blending_0_0 = tmp_qloop_0*tmp_qloop_14 + tmp_qloop_18*tmp_qloop_4; + const real_t jac_blending_0_1 = -tmp_qloop_0*tmp_qloop_15*tmp_qloop_16*tmp_qloop_3 - tmp_qloop_0*tmp_qloop_19; + const real_t jac_blending_1_0 = tmp_qloop_14*tmp_qloop_3 - tmp_qloop_20*tmp_qloop_3; + const real_t jac_blending_1_1 = tmp_qloop_15*tmp_qloop_16*tmp_qloop_2*1.0 - tmp_qloop_19*tmp_qloop_3; + const real_t tmp_qloop_21 = jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0; + const real_t tmp_qloop_22 = 1.0 / (tmp_qloop_21); + const real_t abs_det_jac_blending = tmp_qloop_21; + const real_t jac_blending_inv_0_0 = jac_blending_1_1*tmp_qloop_22; + const real_t jac_blending_inv_0_1 = -jac_blending_0_1*tmp_qloop_22; + const real_t jac_blending_inv_1_0 = -jac_blending_1_0*tmp_qloop_22; + const real_t tmp_qloop_48 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_0) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_0); + const real_t tmp_qloop_56 = tmp_qloop_48*tmp_qloop_55; + const real_t tmp_qloop_60 = tmp_qloop_48*tmp_qloop_59; + const real_t tmp_qloop_62 = tmp_qloop_48*tmp_qloop_61; + const real_t jac_blending_inv_1_1 = jac_blending_0_0*tmp_qloop_22; + const real_t tmp_qloop_57 = tmp_qloop_46*(jac_affine_inv_0_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE*jac_blending_inv_1_1) + tmp_qloop_47*(jac_affine_inv_1_0_BLUE*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE*jac_blending_inv_1_1); + const real_t tmp_qloop_58 = tmp_qloop_55*tmp_qloop_57; + const real_t tmp_qloop_63 = tmp_qloop_57*tmp_qloop_59; + const real_t tmp_qloop_64 = tmp_qloop_57*tmp_qloop_61; + const real_t hessian_blending_0_0_0 = tmp_qloop_14 - tmp_qloop_25 + tmp_qloop_28; + const real_t hessian_blending_1_0_0 = -tmp_qloop_26*(tmp_qloop_3*tmp_qloop_3*tmp_qloop_3) + tmp_qloop_29*tmp_qloop_4 + tmp_qloop_3*tmp_qloop_32 - tmp_qloop_31; + const real_t hessian_blending_0_0_1 = tmp_qloop_1*tmp_qloop_11*tmp_qloop_15*tmp_qloop_30*-2.0 - tmp_qloop_34; + const real_t hessian_blending_1_0_1 = tmp_qloop_1*tmp_qloop_10*tmp_qloop_6*tmp_qloop_9*1.0 - tmp_qloop_20 - tmp_qloop_28 - tmp_qloop_35; + const real_t hessian_blending_0_1_0 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_31 - tmp_qloop_34; + const real_t hessian_blending_1_1_0 = -tmp_qloop_20 + tmp_qloop_27 - tmp_qloop_35 + tmp_qloop_36; + const real_t hessian_blending_0_1_1 = tmp_qloop_0*tmp_qloop_32 - (tmp_qloop_0*tmp_qloop_0*tmp_qloop_0)*tmp_qloop_26 + tmp_qloop_25 + tmp_qloop_36; + const real_t hessian_blending_1_1_1 = tmp_qloop_10*tmp_qloop_15*tmp_qloop_2*tmp_qloop_7*tmp_qloop_9*1.0 + tmp_qloop_10*tmp_qloop_15*tmp_qloop_4*tmp_qloop_8*tmp_qloop_9*1.0 - tmp_qloop_19 - tmp_qloop_33; + const real_t q_tmp_0_0 = tmp_qloop_43*tmp_qloop_56; + const real_t q_tmp_0_1 = tmp_qloop_49*tmp_qloop_56; + const real_t q_tmp_0_2 = tmp_qloop_50*tmp_qloop_56; + const real_t q_tmp_0_3 = tmp_qloop_38*tmp_qloop_56; + const real_t q_tmp_0_4 = tmp_qloop_51*tmp_qloop_56; + const real_t q_tmp_0_5 = tmp_qloop_53*tmp_qloop_56; + const real_t q_tmp_0_6 = tmp_qloop_43*tmp_qloop_58; + const real_t q_tmp_0_7 = tmp_qloop_49*tmp_qloop_58; + const real_t q_tmp_0_8 = tmp_qloop_50*tmp_qloop_58; + const real_t q_tmp_0_9 = tmp_qloop_38*tmp_qloop_58; + const real_t q_tmp_0_10 = tmp_qloop_51*tmp_qloop_58; + const real_t q_tmp_0_11 = tmp_qloop_53*tmp_qloop_58; + const real_t q_tmp_1_0 = tmp_qloop_43*tmp_qloop_60; + const real_t q_tmp_1_1 = tmp_qloop_49*tmp_qloop_60; + const real_t q_tmp_1_2 = tmp_qloop_50*tmp_qloop_60; + const real_t q_tmp_1_3 = tmp_qloop_52*tmp_qloop_62; + const real_t q_tmp_1_4 = tmp_qloop_51*tmp_qloop_60; + const real_t q_tmp_1_5 = tmp_qloop_53*tmp_qloop_60; + const real_t q_tmp_1_6 = tmp_qloop_43*tmp_qloop_63; + const real_t q_tmp_1_7 = tmp_qloop_49*tmp_qloop_63; + const real_t q_tmp_1_8 = tmp_qloop_50*tmp_qloop_63; + const real_t q_tmp_1_9 = tmp_qloop_52*tmp_qloop_64; + const real_t q_tmp_1_10 = tmp_qloop_51*tmp_qloop_63; + const real_t q_tmp_1_11 = tmp_qloop_53*tmp_qloop_63; + const real_t q_tmp_2_0 = tmp_qloop_43*tmp_qloop_62; + const real_t q_tmp_2_1 = tmp_qloop_49*tmp_qloop_62; + const real_t q_tmp_2_2 = tmp_qloop_50*tmp_qloop_62; + const real_t q_tmp_2_3 = tmp_qloop_48*tmp_qloop_65; + const real_t q_tmp_2_4 = tmp_qloop_51*tmp_qloop_62; + const real_t q_tmp_2_5 = tmp_qloop_53*tmp_qloop_62; + const real_t q_tmp_2_6 = tmp_qloop_43*tmp_qloop_64; + const real_t q_tmp_2_7 = tmp_qloop_49*tmp_qloop_64; + const real_t q_tmp_2_8 = tmp_qloop_50*tmp_qloop_64; + const real_t q_tmp_2_9 = tmp_qloop_57*tmp_qloop_65; + const real_t q_tmp_2_10 = tmp_qloop_51*tmp_qloop_64; + const real_t q_tmp_2_11 = tmp_qloop_53*tmp_qloop_64; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + + std::vector< uint_t > _data_rowIdx( 3 ); + std::vector< uint_t > _data_colIdx( 12 ); + std::vector< real_t > _data_mat( 36 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_1_0)); + _data_mat[13] = ((real_t)(elMat_1_1)); + _data_mat[14] = ((real_t)(elMat_1_2)); + _data_mat[15] = ((real_t)(elMat_1_3)); + _data_mat[16] = ((real_t)(elMat_1_4)); + _data_mat[17] = ((real_t)(elMat_1_5)); + _data_mat[18] = ((real_t)(elMat_1_6)); + _data_mat[19] = ((real_t)(elMat_1_7)); + _data_mat[20] = ((real_t)(elMat_1_8)); + _data_mat[21] = ((real_t)(elMat_1_9)); + _data_mat[22] = ((real_t)(elMat_1_10)); + _data_mat[23] = ((real_t)(elMat_1_11)); + _data_mat[24] = ((real_t)(elMat_2_0)); + _data_mat[25] = ((real_t)(elMat_2_1)); + _data_mat[26] = ((real_t)(elMat_2_2)); + _data_mat[27] = ((real_t)(elMat_2_3)); + _data_mat[28] = ((real_t)(elMat_2_4)); + _data_mat[29] = ((real_t)(elMat_2_5)); + _data_mat[30] = ((real_t)(elMat_2_6)); + _data_mat[31] = ((real_t)(elMat_2_7)); + _data_mat[32] = ((real_t)(elMat_2_8)); + _data_mat[33] = ((real_t)(elMat_2_9)); + _data_mat[34] = ((real_t)(elMat_2_10)); + _data_mat[35] = ((real_t)(elMat_2_11)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..77f66b1a81cb4ba60ba7ca5e129e052a1f951eac --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_apply_macro_3D.cpp @@ -0,0 +1,4188 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::apply_macro_3D( real_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, real_t * RESTRICT _data_src_edge_0, real_t * RESTRICT _data_src_edge_1, real_t * RESTRICT _data_src_edge_2, real_t * RESTRICT _data_src_vertex_0, real_t * RESTRICT _data_src_vertex_1, real_t * RESTRICT _data_src_vertex_2, real_t forVertex_0, real_t forVertex_1, real_t forVertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t rayVertex_2, real_t refVertex_0, real_t refVertex_1, real_t refVertex_2, real_t thrVertex_0, real_t thrVertex_1, real_t thrVertex_2 ) const +{ + { + const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983}; + + const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666}; + + const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666}; + + const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666}; + + { + /* CellType.WHITE_UP */ + const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2; + const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP; + const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP; + const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP; + const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP; + const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP; + const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP; + const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP; + const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP; + const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP; + const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP; + const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP; + const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP; + const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP); + const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP); + const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP); + const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + { + /* CellType.WHITE_DOWN */ + const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN; + const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN; + const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN; + const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN; + const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN; + const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN; + const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN; + const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN; + const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN; + const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN; + const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN; + const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN; + const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN; + const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN; + const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN; + const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN; + const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN); + const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN); + const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.BLUE_UP */ + const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP; + const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP; + const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP; + const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP; + const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP; + const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP; + const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP; + const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP; + const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP; + const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP; + const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP; + const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP; + const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP; + const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP; + const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP); + const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP); + const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP); + const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.BLUE_DOWN */ + const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN; + const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN; + const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN; + const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN; + const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN; + const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN; + const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN; + const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN; + const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN; + const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN; + const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN; + const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN; + const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN; + const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN; + const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN; + const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN; + const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN; + const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN; + const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN; + const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN; + const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN); + const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN); + const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + { + /* CellType.GREEN_UP */ + const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP; + const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP; + const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP; + const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP; + const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP; + const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP; + const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP; + const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP; + const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP; + const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP; + const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP; + const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP; + const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP; + const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP; + const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP; + const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP; + const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP; + const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP); + const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP); + const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP); + const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.GREEN_DOWN */ + const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN; + const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN; + const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN; + const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN; + const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN; + const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN; + const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN; + const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN; + const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN; + const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN; + const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN; + const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN; + const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN; + const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN; + const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN; + const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN; + const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN; + const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN); + const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN); + const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..05c564b414a539295d5dd4cd7d048ea03afb7944 --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap_toMatrix_macro_3D.cpp @@ -0,0 +1,5682 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotUIcosahedralShellMap::toMatrix_macro_3D( idx_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, idx_t * RESTRICT _data_src_edge_0, idx_t * RESTRICT _data_src_edge_1, idx_t * RESTRICT _data_src_edge_2, idx_t * RESTRICT _data_src_vertex_0, idx_t * RESTRICT _data_src_vertex_1, idx_t * RESTRICT _data_src_vertex_2, real_t forVertex_0, real_t forVertex_1, real_t forVertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float, real_t radRayVertex, real_t radRefVertex, real_t rayVertex_0, real_t rayVertex_1, real_t rayVertex_2, real_t refVertex_0, real_t refVertex_1, real_t refVertex_2, real_t thrVertex_0, real_t thrVertex_1, real_t thrVertex_2 ) const +{ + { + const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983}; + + const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666}; + + const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666}; + + const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666}; + + { + /* CellType.WHITE_UP */ + const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2; + const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP; + const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP; + const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP; + const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP; + const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP; + const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP; + const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP; + const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP; + const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP; + const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP; + const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP; + const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP; + const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP); + const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP); + const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP); + const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.WHITE_DOWN */ + const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN; + const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN; + const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN; + const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN; + const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN; + const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN; + const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN; + const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN; + const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN; + const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN; + const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN; + const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN; + const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN; + const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN; + const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN; + const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN; + const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN); + const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN); + const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_WHITE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_WHITE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_WHITE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_WHITE_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.BLUE_UP */ + const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP; + const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP; + const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP; + const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP; + const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP; + const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP; + const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP; + const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP; + const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP; + const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP; + const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP; + const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP; + const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP; + const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP; + const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP); + const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP); + const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP); + const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.BLUE_DOWN */ + const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN; + const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN; + const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN; + const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN; + const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN; + const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN; + const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN; + const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN; + const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN; + const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN; + const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN; + const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN; + const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN; + const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN; + const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN; + const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN; + const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN; + const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN; + const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN; + const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN; + const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN); + const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN); + const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_BLUE_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_BLUE_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_BLUE_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_BLUE_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.GREEN_UP */ + const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP; + const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP; + const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP; + const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP; + const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP; + const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP; + const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP; + const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP; + const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP; + const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP; + const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP; + const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP; + const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP; + const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP; + const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP; + const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP; + const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP; + const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP); + const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP); + const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP); + const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_UP*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_UP*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_UP*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_UP*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.GREEN_DOWN */ + const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN; + const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN; + const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN; + const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN; + const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN; + const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN; + const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN; + const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN; + const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN; + const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN; + const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN; + const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN; + const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN; + const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN; + const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN; + const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN; + const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN; + const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN); + const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN); + const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = rayVertex_1 - refVertex_1; + const real_t tmp_qloop_1 = -rayVertex_0; + const real_t tmp_qloop_2 = -forVertex_0 - tmp_qloop_1; + const real_t tmp_qloop_3 = rayVertex_2 - thrVertex_2; + const real_t tmp_qloop_4 = tmp_qloop_2*tmp_qloop_3; + const real_t tmp_qloop_5 = rayVertex_2 - refVertex_2; + const real_t tmp_qloop_6 = rayVertex_1 - thrVertex_1; + const real_t tmp_qloop_7 = tmp_qloop_2*tmp_qloop_6; + const real_t tmp_qloop_8 = -rayVertex_1; + const real_t tmp_qloop_9 = -forVertex_1 - tmp_qloop_8; + const real_t tmp_qloop_10 = rayVertex_0 - thrVertex_0; + const real_t tmp_qloop_11 = rayVertex_0 - refVertex_0; + const real_t tmp_qloop_12 = -rayVertex_2; + const real_t tmp_qloop_13 = -forVertex_2 - tmp_qloop_12; + const real_t tmp_qloop_14 = tmp_qloop_3*tmp_qloop_9; + const real_t tmp_qloop_15 = tmp_qloop_10*tmp_qloop_13; + const real_t tmp_qloop_16 = -tmp_qloop_0*tmp_qloop_15 + tmp_qloop_0*tmp_qloop_4 + tmp_qloop_10*tmp_qloop_5*tmp_qloop_9 + tmp_qloop_11*tmp_qloop_13*tmp_qloop_6 - tmp_qloop_11*tmp_qloop_14 - tmp_qloop_5*tmp_qloop_7; + const real_t tmp_qloop_17 = 1.0 / (tmp_qloop_16); + const real_t tmp_qloop_18 = p_affine_0_0 + (-p_affine_0_0 + p_affine_1_0)*_data_q_p_0[q] + (-p_affine_0_0 + p_affine_2_0)*_data_q_p_1[q] + (-p_affine_0_0 + p_affine_3_0)*_data_q_p_2[q]; + const real_t tmp_qloop_19 = (tmp_qloop_18*tmp_qloop_18); + const real_t tmp_qloop_20 = radRayVertex*tmp_qloop_16; + const real_t tmp_qloop_21 = radRayVertex - radRefVertex; + const real_t tmp_qloop_22 = p_affine_0_2 + (-p_affine_0_2 + p_affine_1_2)*_data_q_p_0[q] + (-p_affine_0_2 + p_affine_2_2)*_data_q_p_1[q] + (-p_affine_0_2 + p_affine_3_2)*_data_q_p_2[q]; + const real_t tmp_qloop_23 = -tmp_qloop_12 - tmp_qloop_22; + const real_t tmp_qloop_24 = -tmp_qloop_1 - tmp_qloop_18; + const real_t tmp_qloop_25 = p_affine_0_1 + (-p_affine_0_1 + p_affine_1_1)*_data_q_p_0[q] + (-p_affine_0_1 + p_affine_2_1)*_data_q_p_1[q] + (-p_affine_0_1 + p_affine_3_1)*_data_q_p_2[q]; + const real_t tmp_qloop_26 = -tmp_qloop_25 - tmp_qloop_8; + const real_t tmp_qloop_27 = tmp_qloop_21*(tmp_qloop_10*tmp_qloop_23*tmp_qloop_9 + tmp_qloop_13*tmp_qloop_24*tmp_qloop_6 - tmp_qloop_14*tmp_qloop_24 - tmp_qloop_15*tmp_qloop_26 + tmp_qloop_2*tmp_qloop_26*tmp_qloop_3 - tmp_qloop_23*tmp_qloop_7); + const real_t tmp_qloop_28 = tmp_qloop_20 - tmp_qloop_27; + const real_t tmp_qloop_29 = (tmp_qloop_25*tmp_qloop_25); + const real_t tmp_qloop_30 = (tmp_qloop_22*tmp_qloop_22); + const real_t tmp_qloop_31 = tmp_qloop_19 + tmp_qloop_29 + tmp_qloop_30; + const real_t tmp_qloop_32 = -tmp_qloop_13*tmp_qloop_6 + tmp_qloop_14; + const real_t tmp_qloop_33 = -tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_34 = tmp_qloop_18*tmp_qloop_33; + const real_t tmp_qloop_35 = tmp_qloop_28 + tmp_qloop_34; + const real_t tmp_qloop_36 = tmp_qloop_17*(-tmp_qloop_19*tmp_qloop_28 + tmp_qloop_31*tmp_qloop_35); + const real_t tmp_qloop_37 = pow(tmp_qloop_31, -1.5000000000000000); + const real_t tmp_qloop_38 = tmp_qloop_37*1.0; + const real_t tmp_qloop_39 = tmp_qloop_10*tmp_qloop_13 - tmp_qloop_4; + const real_t tmp_qloop_40 = tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_31*tmp_qloop_40; + const real_t tmp_qloop_42 = -tmp_qloop_25*tmp_qloop_28 - tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_17*tmp_qloop_38; + const real_t tmp_qloop_44 = tmp_qloop_42*tmp_qloop_43; + const real_t tmp_qloop_45 = -tmp_qloop_10*tmp_qloop_9 + tmp_qloop_7; + const real_t tmp_qloop_46 = -tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_47 = -tmp_qloop_28; + const real_t tmp_qloop_48 = tmp_qloop_22*tmp_qloop_47; + const real_t tmp_qloop_49 = tmp_qloop_31*tmp_qloop_46 + tmp_qloop_48; + const real_t tmp_qloop_50 = tmp_qloop_43*tmp_qloop_49; + const real_t tmp_qloop_51 = tmp_qloop_18*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_33; + const real_t tmp_qloop_52 = tmp_qloop_43*tmp_qloop_51; + const real_t tmp_qloop_53 = -tmp_qloop_21*tmp_qloop_39; + const real_t tmp_qloop_54 = tmp_qloop_25*tmp_qloop_53 + tmp_qloop_28; + const real_t tmp_qloop_55 = tmp_qloop_29*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_54; + const real_t tmp_qloop_56 = tmp_qloop_22*tmp_qloop_46; + const real_t tmp_qloop_57 = tmp_qloop_28 + tmp_qloop_56; + const real_t tmp_qloop_58 = tmp_qloop_30*tmp_qloop_47 + tmp_qloop_31*tmp_qloop_57; + const real_t tmp_qloop_66 = pow(tmp_qloop_31, -2.5000000000000000)*3.0; + const real_t tmp_qloop_67 = tmp_qloop_36*tmp_qloop_66; + const real_t tmp_qloop_68 = tmp_qloop_21*tmp_qloop_32; + const real_t tmp_qloop_69 = tmp_qloop_18*2.0; + const real_t tmp_qloop_70 = -tmp_qloop_41; + const real_t tmp_qloop_71 = tmp_qloop_35*2.0; + const real_t tmp_qloop_72 = tmp_qloop_21*tmp_qloop_45; + const real_t tmp_qloop_73 = -tmp_qloop_31*tmp_qloop_72; + const real_t tmp_qloop_74 = -tmp_qloop_20 + tmp_qloop_27; + const real_t tmp_qloop_75 = tmp_qloop_18*tmp_qloop_68 + tmp_qloop_34*2.0 + tmp_qloop_74; + const real_t tmp_qloop_76 = tmp_qloop_17*tmp_qloop_66; + const real_t tmp_qloop_77 = tmp_qloop_51*tmp_qloop_76; + const real_t tmp_qloop_78 = tmp_qloop_25*tmp_qloop_77; + const real_t tmp_qloop_79 = tmp_qloop_25*2.0; + const real_t tmp_qloop_80 = tmp_qloop_18*tmp_qloop_40 + tmp_qloop_33*tmp_qloop_79; + const real_t tmp_qloop_81 = tmp_qloop_25*tmp_qloop_43; + const real_t tmp_qloop_82 = tmp_qloop_22*2.0; + const real_t tmp_qloop_83 = tmp_qloop_18*tmp_qloop_72 + tmp_qloop_33*tmp_qloop_82; + const real_t tmp_qloop_84 = -tmp_qloop_22*tmp_qloop_78; + const real_t tmp_qloop_85 = tmp_qloop_18*tmp_qloop_22; + const real_t tmp_qloop_86 = tmp_qloop_22*tmp_qloop_43; + const real_t tmp_qloop_87 = tmp_qloop_21*tmp_qloop_25*tmp_qloop_32 - tmp_qloop_40*tmp_qloop_69; + const real_t tmp_qloop_88 = tmp_qloop_18*tmp_qloop_43; + const real_t tmp_qloop_89 = tmp_qloop_42*tmp_qloop_76; + const real_t tmp_qloop_90 = -tmp_qloop_25*tmp_qloop_40 - tmp_qloop_28; + const real_t tmp_qloop_91 = tmp_qloop_25*tmp_qloop_89; + const real_t tmp_qloop_92 = tmp_qloop_25*tmp_qloop_72 - tmp_qloop_40*tmp_qloop_82; + const real_t tmp_qloop_93 = tmp_qloop_85*tmp_qloop_89; + const real_t tmp_qloop_94 = -tmp_qloop_31*tmp_qloop_68; + const real_t tmp_qloop_95 = tmp_qloop_55*tmp_qloop_76; + const real_t tmp_qloop_96 = tmp_qloop_22*tmp_qloop_68 + tmp_qloop_46*tmp_qloop_69; + const real_t tmp_qloop_97 = tmp_qloop_49*tmp_qloop_76; + const real_t tmp_qloop_98 = tmp_qloop_22*tmp_qloop_40 + tmp_qloop_46*tmp_qloop_79; + const real_t tmp_qloop_99 = tmp_qloop_25*tmp_qloop_97; + const real_t tmp_qloop_100 = tmp_qloop_18*tmp_qloop_99; + const real_t tmp_qloop_101 = tmp_qloop_22*tmp_qloop_72 + tmp_qloop_56*2.0 + tmp_qloop_74; + const real_t tmp_qloop_102 = tmp_qloop_58*tmp_qloop_76; + const real_t tmp_qloop_103 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_104 = tmp_qloop_103*2.0; + const real_t tmp_qloop_105 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_106 = tmp_qloop_105*2.0; + const real_t tmp_qloop_107 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_108 = tmp_qloop_107*2.0; + const real_t tmp_qloop_109 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_110 = tmp_qloop_109*_data_q_p_2[q]; + const real_t tmp_qloop_111 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_112 = tmp_qloop_111*_data_q_p_1[q]; + const real_t tmp_qloop_113 = tmp_qloop_111*_data_q_p_2[q]; + const real_t tmp_qloop_114 = tmp_qloop_112 + tmp_qloop_113; + const real_t tmp_qloop_115 = tmp_qloop_104 + tmp_qloop_106 + tmp_qloop_108 + tmp_qloop_110 + tmp_qloop_114 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_116 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_117 = tmp_qloop_109 + tmp_qloop_116; + const real_t tmp_qloop_118 = -rho_dof_8*tmp_qloop_109; + const real_t tmp_qloop_119 = rho_dof_0*(tmp_qloop_111 + tmp_qloop_117 - 3.0); + const real_t tmp_qloop_120 = -rho_dof_7*tmp_qloop_116 + tmp_qloop_119; + const real_t tmp_qloop_121 = rho_dof_1*(tmp_qloop_111 - 1.0) + rho_dof_5*tmp_qloop_116 + rho_dof_6*tmp_qloop_109 + rho_dof_9*(-tmp_qloop_117 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_118 + tmp_qloop_120; + const real_t tmp_qloop_122 = tmp_qloop_111 - 4.0; + const real_t tmp_qloop_123 = -rho_dof_9*tmp_qloop_111; + const real_t tmp_qloop_124 = rho_dof_2*(tmp_qloop_109 - 1.0) + rho_dof_4*tmp_qloop_116 + rho_dof_6*tmp_qloop_111 + rho_dof_8*(-tmp_qloop_116 - tmp_qloop_122 - 8.0*_data_q_p_1[q]) + tmp_qloop_120 + tmp_qloop_123; + const real_t tmp_qloop_125 = rho_dof_3*(tmp_qloop_116 - 1.0) + rho_dof_4*tmp_qloop_109 + rho_dof_5*tmp_qloop_111 + rho_dof_7*(-tmp_qloop_109 - tmp_qloop_122 - 8.0*_data_q_p_2[q]) + tmp_qloop_118 + tmp_qloop_119 + tmp_qloop_123; + const real_t tmp_qloop_127 = tmp_qloop_104 - _data_q_p_0[q]; + const real_t tmp_qloop_128 = tmp_qloop_106 - _data_q_p_1[q]; + const real_t tmp_qloop_129 = tmp_qloop_108 - _data_q_p_2[q]; + const real_t tmp_qloop_130 = tmp_qloop_107*-4.0 - tmp_qloop_110 - tmp_qloop_113 + tmp_qloop_116; + const real_t tmp_qloop_131 = tmp_qloop_105*4.0; + const real_t tmp_qloop_132 = tmp_qloop_109 - tmp_qloop_110 - tmp_qloop_112 - tmp_qloop_131; + const real_t tmp_qloop_133 = tmp_qloop_103*4.0; + const real_t tmp_qloop_134 = tmp_qloop_111 - tmp_qloop_114 - tmp_qloop_133; + const real_t tmp_qloop_135 = 1.0 / (rho_dof_0*tmp_qloop_115 + rho_dof_1*tmp_qloop_127 + rho_dof_2*tmp_qloop_128 + rho_dof_3*tmp_qloop_129 + rho_dof_4*tmp_qloop_110 + rho_dof_5*tmp_qloop_113 + rho_dof_6*tmp_qloop_112 + rho_dof_7*tmp_qloop_130 + rho_dof_8*tmp_qloop_132 + rho_dof_9*tmp_qloop_134)*_data_q_w[q]; + const real_t tmp_qloop_136 = tmp_qloop_135*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_142 = tmp_qloop_135*_data_q_p_0[q]; + const real_t tmp_qloop_144 = tmp_qloop_135*_data_q_p_2[q]; + const real_t tmp_qloop_147 = tmp_qloop_135*_data_q_p_1[q]; + const real_t tmp_qloop_158 = tmp_qloop_105*tmp_qloop_111; + const real_t tmp_qloop_159 = tmp_qloop_135*tmp_qloop_158; + const real_t tmp_qloop_161 = tmp_qloop_107*tmp_qloop_135; + const real_t jac_blending_0_0 = tmp_qloop_36*tmp_qloop_38; + const real_t jac_blending_0_1 = tmp_qloop_18*tmp_qloop_44; + const real_t jac_blending_0_2 = tmp_qloop_18*tmp_qloop_50; + const real_t jac_blending_1_0 = tmp_qloop_25*tmp_qloop_52; + const real_t jac_blending_1_1 = tmp_qloop_43*tmp_qloop_55; + const real_t tmp_qloop_63 = jac_blending_0_2*jac_blending_1_1; + const real_t jac_blending_1_2 = tmp_qloop_25*tmp_qloop_50; + const real_t tmp_qloop_60 = jac_blending_0_1*jac_blending_1_2; + const real_t jac_blending_2_0 = tmp_qloop_22*tmp_qloop_52; + const real_t jac_blending_2_1 = tmp_qloop_22*tmp_qloop_44; + const real_t tmp_qloop_61 = jac_blending_1_2*jac_blending_2_1; + const real_t jac_blending_2_2 = tmp_qloop_43*tmp_qloop_58; + const real_t tmp_qloop_59 = jac_blending_1_1*jac_blending_2_2; + const real_t tmp_qloop_62 = jac_blending_0_1*jac_blending_2_2; + const real_t tmp_qloop_64 = jac_blending_0_0*tmp_qloop_59 - jac_blending_0_0*tmp_qloop_61 + jac_blending_0_2*jac_blending_1_0*jac_blending_2_1 - jac_blending_1_0*tmp_qloop_62 + jac_blending_2_0*tmp_qloop_60 - jac_blending_2_0*tmp_qloop_63; + const real_t tmp_qloop_65 = 1.0 / (tmp_qloop_64); + const real_t abs_det_jac_blending = tmp_qloop_64; + const real_t jac_blending_inv_0_0 = tmp_qloop_65*(tmp_qloop_59 - tmp_qloop_61); + const real_t jac_blending_inv_0_1 = tmp_qloop_65*(jac_blending_0_2*jac_blending_2_1 - tmp_qloop_62); + const real_t jac_blending_inv_0_2 = tmp_qloop_65*(tmp_qloop_60 - tmp_qloop_63); + const real_t jac_blending_inv_1_0 = tmp_qloop_65*(-jac_blending_1_0*jac_blending_2_2 + jac_blending_1_2*jac_blending_2_0); + const real_t jac_blending_inv_1_1 = tmp_qloop_65*(jac_blending_0_0*jac_blending_2_2 - jac_blending_0_2*jac_blending_2_0); + const real_t jac_blending_inv_1_2 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_1_2 + jac_blending_0_2*jac_blending_1_0); + const real_t jac_blending_inv_2_0 = tmp_qloop_65*(jac_blending_1_0*jac_blending_2_1 - jac_blending_1_1*jac_blending_2_0); + const real_t tmp_qloop_126 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_0) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_0 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_0 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_0); + const real_t tmp_qloop_137 = tmp_qloop_126*tmp_qloop_136; + const real_t tmp_qloop_143 = tmp_qloop_126*tmp_qloop_142; + const real_t tmp_qloop_145 = tmp_qloop_126*tmp_qloop_144; + const real_t tmp_qloop_146 = tmp_qloop_112*tmp_qloop_145; + const real_t tmp_qloop_148 = tmp_qloop_126*tmp_qloop_147; + const real_t tmp_qloop_157 = tmp_qloop_126*tmp_qloop_135; + const real_t tmp_qloop_160 = tmp_qloop_107*tmp_qloop_157; + const real_t jac_blending_inv_2_1 = tmp_qloop_65*(-jac_blending_0_0*jac_blending_2_1 + jac_blending_0_1*jac_blending_2_0); + const real_t tmp_qloop_138 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_1) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_1 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_1 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_1); + const real_t tmp_qloop_139 = tmp_qloop_136*tmp_qloop_138; + const real_t tmp_qloop_149 = tmp_qloop_138*tmp_qloop_142; + const real_t tmp_qloop_150 = tmp_qloop_138*tmp_qloop_144; + const real_t tmp_qloop_151 = tmp_qloop_112*tmp_qloop_150; + const real_t tmp_qloop_152 = tmp_qloop_138*tmp_qloop_147; + const real_t tmp_qloop_162 = tmp_qloop_138*tmp_qloop_161; + const real_t jac_blending_inv_2_2 = tmp_qloop_65*(jac_blending_0_0*jac_blending_1_1 - jac_blending_0_1*jac_blending_1_0); + const real_t tmp_qloop_140 = tmp_qloop_121*(jac_affine_inv_0_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_0_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_0_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_124*(jac_affine_inv_1_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_1_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_1_2_GREEN_DOWN*jac_blending_inv_2_2) + tmp_qloop_125*(jac_affine_inv_2_0_GREEN_DOWN*jac_blending_inv_0_2 + jac_affine_inv_2_1_GREEN_DOWN*jac_blending_inv_1_2 + jac_affine_inv_2_2_GREEN_DOWN*jac_blending_inv_2_2); + const real_t tmp_qloop_141 = tmp_qloop_136*tmp_qloop_140; + const real_t tmp_qloop_153 = tmp_qloop_140*tmp_qloop_142; + const real_t tmp_qloop_154 = tmp_qloop_140*tmp_qloop_144; + const real_t tmp_qloop_155 = tmp_qloop_112*tmp_qloop_154; + const real_t tmp_qloop_156 = tmp_qloop_140*tmp_qloop_147; + const real_t tmp_qloop_163 = tmp_qloop_140*tmp_qloop_161; + const real_t hessian_blending_0_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_68 - tmp_qloop_28*tmp_qloop_69 + tmp_qloop_31*(tmp_qloop_33 - tmp_qloop_68) + tmp_qloop_35*tmp_qloop_69)*1.0 - tmp_qloop_18*tmp_qloop_67; + const real_t hessian_blending_1_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_40 + tmp_qloop_25*tmp_qloop_71 + tmp_qloop_70)*1.0 - tmp_qloop_25*tmp_qloop_67; + const real_t hessian_blending_2_0_0 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_19*tmp_qloop_72 + tmp_qloop_22*tmp_qloop_71 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_67; + const real_t hessian_blending_0_0_1 = tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_18*tmp_qloop_78; + const real_t hessian_blending_1_0_1 = -tmp_qloop_29*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_80*tmp_qloop_81; + const real_t hessian_blending_2_0_1 = tmp_qloop_81*tmp_qloop_83 + tmp_qloop_84; + const real_t hessian_blending_0_0_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_75*1.0 - tmp_qloop_77*tmp_qloop_85; + const real_t hessian_blending_1_0_2 = tmp_qloop_80*tmp_qloop_86 + tmp_qloop_84; + const real_t hessian_blending_2_0_2 = -tmp_qloop_30*tmp_qloop_77 + tmp_qloop_52 + tmp_qloop_83*tmp_qloop_86; + const real_t hessian_blending_0_1_0 = -tmp_qloop_19*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_87*tmp_qloop_88; + const real_t hessian_blending_1_1_0 = tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_18*tmp_qloop_91; + const real_t hessian_blending_2_1_0 = tmp_qloop_88*tmp_qloop_92 - tmp_qloop_93; + const real_t hessian_blending_0_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_68 + tmp_qloop_54*tmp_qloop_69 + tmp_qloop_94)*1.0 - tmp_qloop_18*tmp_qloop_95; + const real_t hessian_blending_1_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_40 + tmp_qloop_31*(-tmp_qloop_40 + tmp_qloop_53) + tmp_qloop_47*tmp_qloop_79 + tmp_qloop_54*tmp_qloop_79)*1.0 - tmp_qloop_25*tmp_qloop_95; + const real_t hessian_blending_2_1_1 = tmp_qloop_17*tmp_qloop_37*(tmp_qloop_29*tmp_qloop_72 + tmp_qloop_54*tmp_qloop_82 + tmp_qloop_73)*1.0 - tmp_qloop_22*tmp_qloop_95; + const real_t hessian_blending_0_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_87*1.0 - tmp_qloop_93; + const real_t hessian_blending_1_1_2 = tmp_qloop_17*tmp_qloop_22*tmp_qloop_37*tmp_qloop_90*1.0 - tmp_qloop_22*tmp_qloop_91; + const real_t hessian_blending_2_1_2 = -tmp_qloop_30*tmp_qloop_89 + tmp_qloop_44 + tmp_qloop_86*tmp_qloop_92; + const real_t hessian_blending_0_2_0 = -tmp_qloop_19*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_88*tmp_qloop_96; + const real_t hessian_blending_1_2_0 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*tmp_qloop_98*1.0; + const real_t hessian_blending_2_2_0 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_18*tmp_qloop_37*1.0 - tmp_qloop_85*tmp_qloop_97; + const real_t hessian_blending_0_2_1 = -tmp_qloop_100 + tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*tmp_qloop_96*1.0; + const real_t hessian_blending_1_2_1 = -tmp_qloop_29*tmp_qloop_97 + tmp_qloop_50 + tmp_qloop_81*tmp_qloop_98; + const real_t hessian_blending_2_2_1 = tmp_qloop_101*tmp_qloop_17*tmp_qloop_25*tmp_qloop_37*1.0 - tmp_qloop_22*tmp_qloop_99; + const real_t hessian_blending_0_2_2 = -tmp_qloop_102*tmp_qloop_18 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_68 + tmp_qloop_57*tmp_qloop_69 + tmp_qloop_94)*1.0; + const real_t hessian_blending_1_2_2 = -tmp_qloop_102*tmp_qloop_25 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_40 + tmp_qloop_57*tmp_qloop_79 + tmp_qloop_70)*1.0; + const real_t hessian_blending_2_2_2 = -tmp_qloop_102*tmp_qloop_22 + tmp_qloop_17*tmp_qloop_37*(tmp_qloop_30*tmp_qloop_72 + tmp_qloop_31*(tmp_qloop_46 - tmp_qloop_72) + tmp_qloop_48*2.0 + tmp_qloop_57*tmp_qloop_82)*1.0; + const real_t q_tmp_0_0 = tmp_qloop_115*tmp_qloop_137; + const real_t q_tmp_0_1 = tmp_qloop_127*tmp_qloop_137; + const real_t q_tmp_0_2 = tmp_qloop_128*tmp_qloop_137; + const real_t q_tmp_0_3 = tmp_qloop_129*tmp_qloop_137; + const real_t q_tmp_0_4 = tmp_qloop_110*tmp_qloop_137; + const real_t q_tmp_0_5 = tmp_qloop_113*tmp_qloop_137; + const real_t q_tmp_0_6 = tmp_qloop_112*tmp_qloop_137; + const real_t q_tmp_0_7 = tmp_qloop_130*tmp_qloop_137; + const real_t q_tmp_0_8 = tmp_qloop_132*tmp_qloop_137; + const real_t q_tmp_0_9 = tmp_qloop_134*tmp_qloop_137; + const real_t q_tmp_0_10 = tmp_qloop_115*tmp_qloop_139; + const real_t q_tmp_0_11 = tmp_qloop_127*tmp_qloop_139; + const real_t q_tmp_0_12 = tmp_qloop_128*tmp_qloop_139; + const real_t q_tmp_0_13 = tmp_qloop_129*tmp_qloop_139; + const real_t q_tmp_0_14 = tmp_qloop_110*tmp_qloop_139; + const real_t q_tmp_0_15 = tmp_qloop_113*tmp_qloop_139; + const real_t q_tmp_0_16 = tmp_qloop_112*tmp_qloop_139; + const real_t q_tmp_0_17 = tmp_qloop_130*tmp_qloop_139; + const real_t q_tmp_0_18 = tmp_qloop_132*tmp_qloop_139; + const real_t q_tmp_0_19 = tmp_qloop_134*tmp_qloop_139; + const real_t q_tmp_0_20 = tmp_qloop_115*tmp_qloop_141; + const real_t q_tmp_0_21 = tmp_qloop_127*tmp_qloop_141; + const real_t q_tmp_0_22 = tmp_qloop_128*tmp_qloop_141; + const real_t q_tmp_0_23 = tmp_qloop_129*tmp_qloop_141; + const real_t q_tmp_0_24 = tmp_qloop_110*tmp_qloop_141; + const real_t q_tmp_0_25 = tmp_qloop_113*tmp_qloop_141; + const real_t q_tmp_0_26 = tmp_qloop_112*tmp_qloop_141; + const real_t q_tmp_0_27 = tmp_qloop_130*tmp_qloop_141; + const real_t q_tmp_0_28 = tmp_qloop_132*tmp_qloop_141; + const real_t q_tmp_0_29 = tmp_qloop_134*tmp_qloop_141; + const real_t q_tmp_1_0 = tmp_qloop_115*tmp_qloop_143; + const real_t q_tmp_1_1 = tmp_qloop_127*tmp_qloop_143; + const real_t q_tmp_1_2 = tmp_qloop_128*tmp_qloop_143; + const real_t q_tmp_1_3 = tmp_qloop_129*tmp_qloop_143; + const real_t q_tmp_1_4 = tmp_qloop_146; + const real_t q_tmp_1_5 = tmp_qloop_133*tmp_qloop_145; + const real_t q_tmp_1_6 = tmp_qloop_133*tmp_qloop_148; + const real_t q_tmp_1_7 = tmp_qloop_130*tmp_qloop_143; + const real_t q_tmp_1_8 = tmp_qloop_132*tmp_qloop_143; + const real_t q_tmp_1_9 = tmp_qloop_134*tmp_qloop_143; + const real_t q_tmp_1_10 = tmp_qloop_115*tmp_qloop_149; + const real_t q_tmp_1_11 = tmp_qloop_127*tmp_qloop_149; + const real_t q_tmp_1_12 = tmp_qloop_128*tmp_qloop_149; + const real_t q_tmp_1_13 = tmp_qloop_129*tmp_qloop_149; + const real_t q_tmp_1_14 = tmp_qloop_151; + const real_t q_tmp_1_15 = tmp_qloop_133*tmp_qloop_150; + const real_t q_tmp_1_16 = tmp_qloop_133*tmp_qloop_152; + const real_t q_tmp_1_17 = tmp_qloop_130*tmp_qloop_149; + const real_t q_tmp_1_18 = tmp_qloop_132*tmp_qloop_149; + const real_t q_tmp_1_19 = tmp_qloop_134*tmp_qloop_149; + const real_t q_tmp_1_20 = tmp_qloop_115*tmp_qloop_153; + const real_t q_tmp_1_21 = tmp_qloop_127*tmp_qloop_153; + const real_t q_tmp_1_22 = tmp_qloop_128*tmp_qloop_153; + const real_t q_tmp_1_23 = tmp_qloop_129*tmp_qloop_153; + const real_t q_tmp_1_24 = tmp_qloop_155; + const real_t q_tmp_1_25 = tmp_qloop_133*tmp_qloop_154; + const real_t q_tmp_1_26 = tmp_qloop_133*tmp_qloop_156; + const real_t q_tmp_1_27 = tmp_qloop_130*tmp_qloop_153; + const real_t q_tmp_1_28 = tmp_qloop_132*tmp_qloop_153; + const real_t q_tmp_1_29 = tmp_qloop_134*tmp_qloop_153; + const real_t q_tmp_2_0 = tmp_qloop_115*tmp_qloop_148; + const real_t q_tmp_2_1 = tmp_qloop_127*tmp_qloop_148; + const real_t q_tmp_2_2 = tmp_qloop_128*tmp_qloop_148; + const real_t q_tmp_2_3 = tmp_qloop_129*tmp_qloop_148; + const real_t q_tmp_2_4 = tmp_qloop_131*tmp_qloop_145; + const real_t q_tmp_2_5 = tmp_qloop_146; + const real_t q_tmp_2_6 = tmp_qloop_157*tmp_qloop_158; + const real_t q_tmp_2_7 = tmp_qloop_130*tmp_qloop_148; + const real_t q_tmp_2_8 = tmp_qloop_132*tmp_qloop_148; + const real_t q_tmp_2_9 = tmp_qloop_134*tmp_qloop_148; + const real_t q_tmp_2_10 = tmp_qloop_115*tmp_qloop_152; + const real_t q_tmp_2_11 = tmp_qloop_127*tmp_qloop_152; + const real_t q_tmp_2_12 = tmp_qloop_128*tmp_qloop_152; + const real_t q_tmp_2_13 = tmp_qloop_129*tmp_qloop_152; + const real_t q_tmp_2_14 = tmp_qloop_131*tmp_qloop_150; + const real_t q_tmp_2_15 = tmp_qloop_151; + const real_t q_tmp_2_16 = tmp_qloop_138*tmp_qloop_159; + const real_t q_tmp_2_17 = tmp_qloop_130*tmp_qloop_152; + const real_t q_tmp_2_18 = tmp_qloop_132*tmp_qloop_152; + const real_t q_tmp_2_19 = tmp_qloop_134*tmp_qloop_152; + const real_t q_tmp_2_20 = tmp_qloop_115*tmp_qloop_156; + const real_t q_tmp_2_21 = tmp_qloop_127*tmp_qloop_156; + const real_t q_tmp_2_22 = tmp_qloop_128*tmp_qloop_156; + const real_t q_tmp_2_23 = tmp_qloop_129*tmp_qloop_156; + const real_t q_tmp_2_24 = tmp_qloop_131*tmp_qloop_154; + const real_t q_tmp_2_25 = tmp_qloop_155; + const real_t q_tmp_2_26 = tmp_qloop_140*tmp_qloop_159; + const real_t q_tmp_2_27 = tmp_qloop_130*tmp_qloop_156; + const real_t q_tmp_2_28 = tmp_qloop_132*tmp_qloop_156; + const real_t q_tmp_2_29 = tmp_qloop_134*tmp_qloop_156; + const real_t q_tmp_3_0 = tmp_qloop_115*tmp_qloop_145; + const real_t q_tmp_3_1 = tmp_qloop_127*tmp_qloop_145; + const real_t q_tmp_3_2 = tmp_qloop_128*tmp_qloop_145; + const real_t q_tmp_3_3 = tmp_qloop_129*tmp_qloop_145; + const real_t q_tmp_3_4 = tmp_qloop_109*tmp_qloop_160; + const real_t q_tmp_3_5 = tmp_qloop_111*tmp_qloop_160; + const real_t q_tmp_3_6 = tmp_qloop_146; + const real_t q_tmp_3_7 = tmp_qloop_130*tmp_qloop_145; + const real_t q_tmp_3_8 = tmp_qloop_132*tmp_qloop_145; + const real_t q_tmp_3_9 = tmp_qloop_134*tmp_qloop_145; + const real_t q_tmp_3_10 = tmp_qloop_115*tmp_qloop_150; + const real_t q_tmp_3_11 = tmp_qloop_127*tmp_qloop_150; + const real_t q_tmp_3_12 = tmp_qloop_128*tmp_qloop_150; + const real_t q_tmp_3_13 = tmp_qloop_129*tmp_qloop_150; + const real_t q_tmp_3_14 = tmp_qloop_109*tmp_qloop_162; + const real_t q_tmp_3_15 = tmp_qloop_111*tmp_qloop_162; + const real_t q_tmp_3_16 = tmp_qloop_151; + const real_t q_tmp_3_17 = tmp_qloop_130*tmp_qloop_150; + const real_t q_tmp_3_18 = tmp_qloop_132*tmp_qloop_150; + const real_t q_tmp_3_19 = tmp_qloop_134*tmp_qloop_150; + const real_t q_tmp_3_20 = tmp_qloop_115*tmp_qloop_154; + const real_t q_tmp_3_21 = tmp_qloop_127*tmp_qloop_154; + const real_t q_tmp_3_22 = tmp_qloop_128*tmp_qloop_154; + const real_t q_tmp_3_23 = tmp_qloop_129*tmp_qloop_154; + const real_t q_tmp_3_24 = tmp_qloop_109*tmp_qloop_163; + const real_t q_tmp_3_25 = tmp_qloop_111*tmp_qloop_163; + const real_t q_tmp_3_26 = tmp_qloop_155; + const real_t q_tmp_3_27 = tmp_qloop_130*tmp_qloop_154; + const real_t q_tmp_3_28 = tmp_qloop_132*tmp_qloop_154; + const real_t q_tmp_3_29 = tmp_qloop_134*tmp_qloop_154; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a161a3a891e6c0ac30f296941dcb4638b4cc48bb --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_2D.cpp @@ -0,0 +1,464 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply_macro_2D( real_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, real_t * RESTRICT _data_src_edge_0, real_t * RESTRICT _data_src_edge_1, real_t * RESTRICT _data_src_vertex_0, real_t * RESTRICT _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const +{ + { + const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669}; + + const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001}; + + const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001}; + + { + /* FaceType.GRAY */ + const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY; + const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY; + const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY; + const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY; + const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY); + const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_3 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_9 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_10 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q]; + const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0); + const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8; + const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8; + const real_t tmp_qloop_11 = jac_affine_inv_0_0_GRAY*tmp_qloop_9 + jac_affine_inv_1_0_GRAY*tmp_qloop_10; + const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q]; + const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q]; + const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7; + const real_t tmp_qloop_15 = tmp_qloop_2*4.0; + const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15; + const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q]; + const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18; + const real_t tmp_qloop_20 = jac_affine_inv_0_1_GRAY*tmp_qloop_9 + jac_affine_inv_1_1_GRAY*tmp_qloop_10; + const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20; + const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q]; + const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q]; + const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22; + const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24; + const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4; + const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6; + const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19; + const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19; + const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19; + const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19; + const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19; + const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6; + const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21; + const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21; + const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21; + const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21; + const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21; + const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6; + const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23; + const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23; + const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25; + const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23; + const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23; + const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6; + const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26; + const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26; + const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27; + const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26; + const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26; + const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6; + const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25; + const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25; + const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28; + const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25; + const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25; + const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6; + const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27; + const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27; + const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28; + const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27; + const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + } + } + { + /* FaceType.BLUE */ + const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE; + const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE; + const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE; + const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE; + const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE; + const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE; + const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE; + const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE; + const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE); + const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t src_dof_3 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t src_dof_6 = _data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t src_dof_7 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_8 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t src_dof_9 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t src_dof_10 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t src_dof_11 = _data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q]; + const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0); + const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8; + const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8; + const real_t tmp_qloop_11 = jac_affine_inv_0_0_BLUE*tmp_qloop_9 + jac_affine_inv_1_0_BLUE*tmp_qloop_10; + const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q]; + const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q]; + const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7; + const real_t tmp_qloop_15 = tmp_qloop_2*4.0; + const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15; + const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q]; + const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18; + const real_t tmp_qloop_20 = jac_affine_inv_0_1_BLUE*tmp_qloop_9 + jac_affine_inv_1_1_BLUE*tmp_qloop_10; + const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20; + const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q]; + const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q]; + const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22; + const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24; + const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4; + const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6; + const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19; + const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19; + const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19; + const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19; + const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19; + const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6; + const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21; + const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21; + const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21; + const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21; + const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21; + const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6; + const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23; + const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23; + const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25; + const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23; + const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23; + const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6; + const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26; + const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26; + const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27; + const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26; + const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26; + const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6; + const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25; + const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25; + const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28; + const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25; + const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25; + const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6; + const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27; + const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27; + const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28; + const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27; + const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_2*src_dof_2 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_2*src_dof_2 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_2*src_dof_2 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..45073514b3c4518e98077e3e54bc3fea9aaa8f0b --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_apply_macro_3D.cpp @@ -0,0 +1,3292 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotU::apply_macro_3D( real_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, real_t * RESTRICT _data_src_edge_0, real_t * RESTRICT _data_src_edge_1, real_t * RESTRICT _data_src_edge_2, real_t * RESTRICT _data_src_vertex_0, real_t * RESTRICT _data_src_vertex_1, real_t * RESTRICT _data_src_vertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const +{ + { + const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983}; + + const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666}; + + const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666}; + + const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666}; + + { + /* CellType.WHITE_UP */ + const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2; + const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP; + const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP; + const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP; + const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP; + const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP; + const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP; + const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP; + const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP; + const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP; + const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP; + const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP; + const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP; + const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP); + const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP); + const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP); + const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + { + /* CellType.WHITE_DOWN */ + const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN; + const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN; + const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN; + const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN; + const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN; + const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN; + const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN; + const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN; + const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN; + const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN; + const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN; + const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN; + const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN; + const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN; + const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN; + const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN; + const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN); + const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN); + const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.BLUE_UP */ + const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP; + const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP; + const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP; + const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP; + const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP; + const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP; + const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP; + const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP; + const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP; + const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP; + const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP; + const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP; + const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP; + const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP; + const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP); + const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP); + const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP); + const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.BLUE_DOWN */ + const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN; + const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN; + const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN; + const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN; + const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN; + const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN; + const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN; + const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN; + const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN; + const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN; + const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN; + const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN; + const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN; + const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN; + const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN; + const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN; + const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN; + const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN; + const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN; + const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN; + const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN); + const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN); + const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + { + /* CellType.GREEN_UP */ + const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP; + const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP; + const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP; + const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP; + const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP; + const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP; + const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP; + const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP; + const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP; + const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP; + const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP; + const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP; + const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP; + const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP; + const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP; + const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP; + const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP; + const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP); + const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP); + const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP); + const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_0 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_3 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + } + } + { + /* CellType.GREEN_DOWN */ + const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN; + const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN; + const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN; + const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN; + const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN; + const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN; + const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN; + const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN; + const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN; + const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN; + const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN; + const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN; + const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN; + const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN; + const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN; + const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN; + const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN; + const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN); + const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN); + const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t src_dof_0 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_1 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_2 = _data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_3 = _data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_4 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_5 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_6 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_7 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_8 = _data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_9 = _data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_10 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_11 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_12 = _data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_13 = _data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_14 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_15 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_16 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_17 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_18 = _data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_19 = _data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_20 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_21 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_22 = _data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t src_dof_23 = _data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t src_dof_24 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_25 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_26 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t src_dof_27 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t src_dof_28 = _data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t src_dof_29 = _data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMatVec_0 = q_acc_0_0*src_dof_0 + q_acc_0_1*src_dof_1 + q_acc_0_10*src_dof_10 + q_acc_0_11*src_dof_11 + q_acc_0_12*src_dof_12 + q_acc_0_13*src_dof_13 + q_acc_0_14*src_dof_14 + q_acc_0_15*src_dof_15 + q_acc_0_16*src_dof_16 + q_acc_0_17*src_dof_17 + q_acc_0_18*src_dof_18 + q_acc_0_19*src_dof_19 + q_acc_0_2*src_dof_2 + q_acc_0_20*src_dof_20 + q_acc_0_21*src_dof_21 + q_acc_0_22*src_dof_22 + q_acc_0_23*src_dof_23 + q_acc_0_24*src_dof_24 + q_acc_0_25*src_dof_25 + q_acc_0_26*src_dof_26 + q_acc_0_27*src_dof_27 + q_acc_0_28*src_dof_28 + q_acc_0_29*src_dof_29 + q_acc_0_3*src_dof_3 + q_acc_0_4*src_dof_4 + q_acc_0_5*src_dof_5 + q_acc_0_6*src_dof_6 + q_acc_0_7*src_dof_7 + q_acc_0_8*src_dof_8 + q_acc_0_9*src_dof_9; + const real_t elMatVec_1 = q_acc_1_0*src_dof_0 + q_acc_1_1*src_dof_1 + q_acc_1_10*src_dof_10 + q_acc_1_11*src_dof_11 + q_acc_1_12*src_dof_12 + q_acc_1_13*src_dof_13 + q_acc_1_14*src_dof_14 + q_acc_1_15*src_dof_15 + q_acc_1_16*src_dof_16 + q_acc_1_17*src_dof_17 + q_acc_1_18*src_dof_18 + q_acc_1_19*src_dof_19 + q_acc_1_2*src_dof_2 + q_acc_1_20*src_dof_20 + q_acc_1_21*src_dof_21 + q_acc_1_22*src_dof_22 + q_acc_1_23*src_dof_23 + q_acc_1_24*src_dof_24 + q_acc_1_25*src_dof_25 + q_acc_1_26*src_dof_26 + q_acc_1_27*src_dof_27 + q_acc_1_28*src_dof_28 + q_acc_1_29*src_dof_29 + q_acc_1_3*src_dof_3 + q_acc_1_4*src_dof_4 + q_acc_1_5*src_dof_5 + q_acc_1_6*src_dof_6 + q_acc_1_7*src_dof_7 + q_acc_1_8*src_dof_8 + q_acc_1_9*src_dof_9; + const real_t elMatVec_2 = q_acc_2_0*src_dof_0 + q_acc_2_1*src_dof_1 + q_acc_2_10*src_dof_10 + q_acc_2_11*src_dof_11 + q_acc_2_12*src_dof_12 + q_acc_2_13*src_dof_13 + q_acc_2_14*src_dof_14 + q_acc_2_15*src_dof_15 + q_acc_2_16*src_dof_16 + q_acc_2_17*src_dof_17 + q_acc_2_18*src_dof_18 + q_acc_2_19*src_dof_19 + q_acc_2_2*src_dof_2 + q_acc_2_20*src_dof_20 + q_acc_2_21*src_dof_21 + q_acc_2_22*src_dof_22 + q_acc_2_23*src_dof_23 + q_acc_2_24*src_dof_24 + q_acc_2_25*src_dof_25 + q_acc_2_26*src_dof_26 + q_acc_2_27*src_dof_27 + q_acc_2_28*src_dof_28 + q_acc_2_29*src_dof_29 + q_acc_2_3*src_dof_3 + q_acc_2_4*src_dof_4 + q_acc_2_5*src_dof_5 + q_acc_2_6*src_dof_6 + q_acc_2_7*src_dof_7 + q_acc_2_8*src_dof_8 + q_acc_2_9*src_dof_9; + const real_t elMatVec_3 = q_acc_3_0*src_dof_0 + q_acc_3_1*src_dof_1 + q_acc_3_10*src_dof_10 + q_acc_3_11*src_dof_11 + q_acc_3_12*src_dof_12 + q_acc_3_13*src_dof_13 + q_acc_3_14*src_dof_14 + q_acc_3_15*src_dof_15 + q_acc_3_16*src_dof_16 + q_acc_3_17*src_dof_17 + q_acc_3_18*src_dof_18 + q_acc_3_19*src_dof_19 + q_acc_3_2*src_dof_2 + q_acc_3_20*src_dof_20 + q_acc_3_21*src_dof_21 + q_acc_3_22*src_dof_22 + q_acc_3_23*src_dof_23 + q_acc_3_24*src_dof_24 + q_acc_3_25*src_dof_25 + q_acc_3_26*src_dof_26 + q_acc_3_27*src_dof_27 + q_acc_3_28*src_dof_28 + q_acc_3_29*src_dof_29 + q_acc_3_3*src_dof_3 + q_acc_3_4*src_dof_4 + q_acc_3_5*src_dof_5 + q_acc_3_6*src_dof_6 + q_acc_3_7*src_dof_7 + q_acc_3_8*src_dof_8 + q_acc_3_9*src_dof_9; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_0 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_1 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1] = elMatVec_2 + _data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))] = elMatVec_3 + _data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8d57d0886cb9b5125b602fb36326a9ed2e7c512d --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_2D.cpp @@ -0,0 +1,628 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix_macro_2D( idx_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, idx_t * RESTRICT _data_src_edge_0, idx_t * RESTRICT _data_src_edge_1, idx_t * RESTRICT _data_src_vertex_0, idx_t * RESTRICT _data_src_vertex_1, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const +{ + { + const real_t _data_q_w [] = {-0.28125, 0.26041666666666669, 0.26041666666666669, 0.26041666666666669}; + + const real_t _data_q_p_0 [] = {0.33333333333333331, 0.20000000000000001, 0.59999999999999998, 0.20000000000000001}; + + const real_t _data_q_p_1 [] = {0.33333333333333331, 0.59999999999999998, 0.20000000000000001, 0.20000000000000001}; + + { + /* FaceType.GRAY */ + const real_t tmp_coords_jac_0_GRAY = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_GRAY = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_GRAY = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_1_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_2_0_GRAY = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_GRAY = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GRAY*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t jac_affine_0_0_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_1_0_GRAY; + const real_t jac_affine_0_1_GRAY = -p_affine_const_0_0_GRAY + p_affine_const_2_0_GRAY; + const real_t jac_affine_1_0_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_1_1_GRAY; + const real_t jac_affine_1_1_GRAY = -p_affine_const_0_1_GRAY + p_affine_const_2_1_GRAY; + const real_t tmp_coords_jac_1_GRAY = 1.0 / (jac_affine_0_0_GRAY*jac_affine_1_1_GRAY - jac_affine_0_1_GRAY*jac_affine_1_0_GRAY); + const real_t jac_affine_inv_0_0_GRAY = jac_affine_1_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_0_1_GRAY = -jac_affine_0_1_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_0_GRAY = -jac_affine_1_0_GRAY*tmp_coords_jac_1_GRAY; + const real_t jac_affine_inv_1_1_GRAY = jac_affine_0_0_GRAY*tmp_coords_jac_1_GRAY; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q]; + const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0); + const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8; + const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8; + const real_t tmp_qloop_11 = jac_affine_inv_0_0_GRAY*tmp_qloop_9 + jac_affine_inv_1_0_GRAY*tmp_qloop_10; + const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q]; + const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q]; + const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7; + const real_t tmp_qloop_15 = tmp_qloop_2*4.0; + const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15; + const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q]; + const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18; + const real_t tmp_qloop_20 = jac_affine_inv_0_1_GRAY*tmp_qloop_9 + jac_affine_inv_1_1_GRAY*tmp_qloop_10; + const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20; + const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q]; + const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q]; + const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22; + const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24; + const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4; + const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6; + const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19; + const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19; + const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19; + const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19; + const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19; + const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6; + const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21; + const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21; + const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21; + const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21; + const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21; + const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6; + const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23; + const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23; + const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25; + const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23; + const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23; + const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6; + const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26; + const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26; + const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27; + const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26; + const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26; + const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6; + const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25; + const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25; + const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28; + const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25; + const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25; + const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6; + const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27; + const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27; + const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28; + const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27; + const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + + std::vector< uint_t > _data_rowIdx( 3 ); + std::vector< uint_t > _data_colIdx( 12 ); + std::vector< real_t > _data_mat( 36 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2))])); + _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_1_0)); + _data_mat[13] = ((real_t)(elMat_1_1)); + _data_mat[14] = ((real_t)(elMat_1_2)); + _data_mat[15] = ((real_t)(elMat_1_3)); + _data_mat[16] = ((real_t)(elMat_1_4)); + _data_mat[17] = ((real_t)(elMat_1_5)); + _data_mat[18] = ((real_t)(elMat_1_6)); + _data_mat[19] = ((real_t)(elMat_1_7)); + _data_mat[20] = ((real_t)(elMat_1_8)); + _data_mat[21] = ((real_t)(elMat_1_9)); + _data_mat[22] = ((real_t)(elMat_1_10)); + _data_mat[23] = ((real_t)(elMat_1_11)); + _data_mat[24] = ((real_t)(elMat_2_0)); + _data_mat[25] = ((real_t)(elMat_2_1)); + _data_mat[26] = ((real_t)(elMat_2_2)); + _data_mat[27] = ((real_t)(elMat_2_3)); + _data_mat[28] = ((real_t)(elMat_2_4)); + _data_mat[29] = ((real_t)(elMat_2_5)); + _data_mat[30] = ((real_t)(elMat_2_6)); + _data_mat[31] = ((real_t)(elMat_2_7)); + _data_mat[32] = ((real_t)(elMat_2_8)); + _data_mat[33] = ((real_t)(elMat_2_9)); + _data_mat[34] = ((real_t)(elMat_2_10)); + _data_mat[35] = ((real_t)(elMat_2_11)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* FaceType.BLUE */ + const real_t tmp_coords_jac_0_BLUE = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_4_BLUE = tmp_coords_jac_0_BLUE*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_0_0_BLUE = tmp_coords_jac_1_BLUE; + const real_t p_affine_const_0_1_BLUE = tmp_coords_jac_2_BLUE; + const real_t p_affine_const_1_0_BLUE = macro_vertex_coord_id_0comp0 + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_1_1_BLUE = macro_vertex_coord_id_0comp1 + tmp_coords_jac_4_BLUE; + const real_t p_affine_const_2_0_BLUE = tmp_coords_jac_1_BLUE + tmp_coords_jac_3_BLUE; + const real_t p_affine_const_2_1_BLUE = tmp_coords_jac_2_BLUE + tmp_coords_jac_4_BLUE; + const real_t jac_affine_0_0_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_1_0_BLUE; + const real_t jac_affine_0_1_BLUE = -p_affine_const_0_0_BLUE + p_affine_const_2_0_BLUE; + const real_t jac_affine_1_0_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_1_1_BLUE; + const real_t jac_affine_1_1_BLUE = -p_affine_const_0_1_BLUE + p_affine_const_2_1_BLUE; + const real_t tmp_coords_jac_5_BLUE = 1.0 / (jac_affine_0_0_BLUE*jac_affine_1_1_BLUE - jac_affine_0_1_BLUE*jac_affine_1_0_BLUE); + const real_t jac_affine_inv_0_0_BLUE = jac_affine_1_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_0_1_BLUE = -jac_affine_0_1_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_0_BLUE = -jac_affine_1_0_BLUE*tmp_coords_jac_5_BLUE; + const real_t jac_affine_inv_1_1_BLUE = jac_affine_0_0_BLUE*tmp_coords_jac_5_BLUE; + for (int64_t ctr_1 = 0; ctr_1 < micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1]; + const real_t rho_dof_3 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + for (int64_t q = 0; q < 4; q += 1) + { + const real_t tmp_qloop_0 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_1 = tmp_qloop_0*_data_q_p_1[q]; + const real_t tmp_qloop_2 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = tmp_qloop_1 + tmp_qloop_3 + tmp_qloop_5 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] + 1.0; + const real_t tmp_qloop_7 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_8 = rho_dof_0*(tmp_qloop_0 + tmp_qloop_7 - 3.0); + const real_t tmp_qloop_9 = rho_dof_1*(tmp_qloop_0 - 1.0) + rho_dof_3*tmp_qloop_7 - rho_dof_4*tmp_qloop_7 + rho_dof_5*(-tmp_qloop_7 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_8; + const real_t tmp_qloop_10 = rho_dof_2*(tmp_qloop_7 - 1.0) + rho_dof_3*tmp_qloop_0 + rho_dof_4*(-tmp_qloop_0 - 8.0*_data_q_p_1[q] + 4.0) - rho_dof_5*tmp_qloop_0 + tmp_qloop_8; + const real_t tmp_qloop_11 = jac_affine_inv_0_0_BLUE*tmp_qloop_9 + jac_affine_inv_1_0_BLUE*tmp_qloop_10; + const real_t tmp_qloop_12 = tmp_qloop_3 - _data_q_p_0[q]; + const real_t tmp_qloop_13 = tmp_qloop_5 - _data_q_p_1[q]; + const real_t tmp_qloop_14 = -tmp_qloop_1 + tmp_qloop_4*-4.0 + tmp_qloop_7; + const real_t tmp_qloop_15 = tmp_qloop_2*4.0; + const real_t tmp_qloop_16 = tmp_qloop_0 - tmp_qloop_1 - tmp_qloop_15; + const real_t tmp_qloop_17 = 1.0 / (rho_dof_0*tmp_qloop_6 + rho_dof_1*tmp_qloop_12 + rho_dof_2*tmp_qloop_13 + rho_dof_3*tmp_qloop_1 + rho_dof_4*tmp_qloop_14 + rho_dof_5*tmp_qloop_16)*_data_q_w[q]; + const real_t tmp_qloop_18 = tmp_qloop_17*(1.0 - _data_q_p_0[q] - _data_q_p_1[q]); + const real_t tmp_qloop_19 = tmp_qloop_11*tmp_qloop_18; + const real_t tmp_qloop_20 = jac_affine_inv_0_1_BLUE*tmp_qloop_9 + jac_affine_inv_1_1_BLUE*tmp_qloop_10; + const real_t tmp_qloop_21 = tmp_qloop_18*tmp_qloop_20; + const real_t tmp_qloop_22 = tmp_qloop_17*_data_q_p_0[q]; + const real_t tmp_qloop_23 = tmp_qloop_11*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_17*_data_q_p_1[q]; + const real_t tmp_qloop_25 = tmp_qloop_11*tmp_qloop_24; + const real_t tmp_qloop_26 = tmp_qloop_20*tmp_qloop_22; + const real_t tmp_qloop_27 = tmp_qloop_20*tmp_qloop_24; + const real_t tmp_qloop_28 = tmp_qloop_0*tmp_qloop_17*tmp_qloop_4; + const real_t q_tmp_0_0 = tmp_qloop_19*tmp_qloop_6; + const real_t q_tmp_0_1 = tmp_qloop_12*tmp_qloop_19; + const real_t q_tmp_0_2 = tmp_qloop_13*tmp_qloop_19; + const real_t q_tmp_0_3 = tmp_qloop_1*tmp_qloop_19; + const real_t q_tmp_0_4 = tmp_qloop_14*tmp_qloop_19; + const real_t q_tmp_0_5 = tmp_qloop_16*tmp_qloop_19; + const real_t q_tmp_0_6 = tmp_qloop_21*tmp_qloop_6; + const real_t q_tmp_0_7 = tmp_qloop_12*tmp_qloop_21; + const real_t q_tmp_0_8 = tmp_qloop_13*tmp_qloop_21; + const real_t q_tmp_0_9 = tmp_qloop_1*tmp_qloop_21; + const real_t q_tmp_0_10 = tmp_qloop_14*tmp_qloop_21; + const real_t q_tmp_0_11 = tmp_qloop_16*tmp_qloop_21; + const real_t q_tmp_1_0 = tmp_qloop_23*tmp_qloop_6; + const real_t q_tmp_1_1 = tmp_qloop_12*tmp_qloop_23; + const real_t q_tmp_1_2 = tmp_qloop_13*tmp_qloop_23; + const real_t q_tmp_1_3 = tmp_qloop_15*tmp_qloop_25; + const real_t q_tmp_1_4 = tmp_qloop_14*tmp_qloop_23; + const real_t q_tmp_1_5 = tmp_qloop_16*tmp_qloop_23; + const real_t q_tmp_1_6 = tmp_qloop_26*tmp_qloop_6; + const real_t q_tmp_1_7 = tmp_qloop_12*tmp_qloop_26; + const real_t q_tmp_1_8 = tmp_qloop_13*tmp_qloop_26; + const real_t q_tmp_1_9 = tmp_qloop_15*tmp_qloop_27; + const real_t q_tmp_1_10 = tmp_qloop_14*tmp_qloop_26; + const real_t q_tmp_1_11 = tmp_qloop_16*tmp_qloop_26; + const real_t q_tmp_2_0 = tmp_qloop_25*tmp_qloop_6; + const real_t q_tmp_2_1 = tmp_qloop_12*tmp_qloop_25; + const real_t q_tmp_2_2 = tmp_qloop_13*tmp_qloop_25; + const real_t q_tmp_2_3 = tmp_qloop_11*tmp_qloop_28; + const real_t q_tmp_2_4 = tmp_qloop_14*tmp_qloop_25; + const real_t q_tmp_2_5 = tmp_qloop_16*tmp_qloop_25; + const real_t q_tmp_2_6 = tmp_qloop_27*tmp_qloop_6; + const real_t q_tmp_2_7 = tmp_qloop_12*tmp_qloop_27; + const real_t q_tmp_2_8 = tmp_qloop_13*tmp_qloop_27; + const real_t q_tmp_2_9 = tmp_qloop_20*tmp_qloop_28; + const real_t q_tmp_2_10 = tmp_qloop_14*tmp_qloop_27; + const real_t q_tmp_2_11 = tmp_qloop_16*tmp_qloop_27; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + + std::vector< uint_t > _data_rowIdx( 3 ); + std::vector< uint_t > _data_colIdx( 12 ); + std::vector< real_t > _data_mat( 36 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + _data_colIdx[6] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + 1])); + _data_colIdx[7] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[8] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 1])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2))])); + _data_colIdx[10] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)) / (2))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_1_0)); + _data_mat[13] = ((real_t)(elMat_1_1)); + _data_mat[14] = ((real_t)(elMat_1_2)); + _data_mat[15] = ((real_t)(elMat_1_3)); + _data_mat[16] = ((real_t)(elMat_1_4)); + _data_mat[17] = ((real_t)(elMat_1_5)); + _data_mat[18] = ((real_t)(elMat_1_6)); + _data_mat[19] = ((real_t)(elMat_1_7)); + _data_mat[20] = ((real_t)(elMat_1_8)); + _data_mat[21] = ((real_t)(elMat_1_9)); + _data_mat[22] = ((real_t)(elMat_1_10)); + _data_mat[23] = ((real_t)(elMat_1_11)); + _data_mat[24] = ((real_t)(elMat_2_0)); + _data_mat[25] = ((real_t)(elMat_2_1)); + _data_mat[26] = ((real_t)(elMat_2_2)); + _data_mat[27] = ((real_t)(elMat_2_3)); + _data_mat[28] = ((real_t)(elMat_2_4)); + _data_mat[29] = ((real_t)(elMat_2_5)); + _data_mat[30] = ((real_t)(elMat_2_6)); + _data_mat[31] = ((real_t)(elMat_2_7)); + _data_mat[32] = ((real_t)(elMat_2_8)); + _data_mat[33] = ((real_t)(elMat_2_9)); + _data_mat[34] = ((real_t)(elMat_2_10)); + _data_mat[35] = ((real_t)(elMat_2_11)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg diff --git a/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0945e0d939022c49e6f992754781d28b7894493a --- /dev/null +++ b/operators/grad_rho_by_rho_dot_u/noarch/P2VectorToP1ElementwiseGradRhoByRhoDotU_toMatrix_macro_3D.cpp @@ -0,0 +1,4786 @@ +/* +* Copyright (c) 2017-2024 Nils Kohl, Daniel Bauer, Fabian Böhm. +* +* This file is part of HyTeG +* (see https://i10git.cs.fau.de/hyteg/hyteg). +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* +* The entire file was generated with the HyTeG Operator Generator. +* +* Avoid modifying this file. If buggy, consider fixing the generator itself. +*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../P2VectorToP1ElementwiseGradRhoByRhoDotU.hpp" + +#define FUNC_PREFIX + +namespace hyteg { + +namespace operatorgeneration { + +void P2VectorToP1ElementwiseGradRhoByRhoDotU::toMatrix_macro_3D( idx_t * RESTRICT _data_dst, real_t * RESTRICT _data_rhoEdge, real_t * RESTRICT _data_rhoVertex, idx_t * RESTRICT _data_src_edge_0, idx_t * RESTRICT _data_src_edge_1, idx_t * RESTRICT _data_src_edge_2, idx_t * RESTRICT _data_src_vertex_0, idx_t * RESTRICT _data_src_vertex_1, idx_t * RESTRICT _data_src_vertex_2, real_t macro_vertex_coord_id_0comp0, real_t macro_vertex_coord_id_0comp1, real_t macro_vertex_coord_id_0comp2, real_t macro_vertex_coord_id_1comp0, real_t macro_vertex_coord_id_1comp1, real_t macro_vertex_coord_id_1comp2, real_t macro_vertex_coord_id_2comp0, real_t macro_vertex_coord_id_2comp1, real_t macro_vertex_coord_id_2comp2, real_t macro_vertex_coord_id_3comp0, real_t macro_vertex_coord_id_3comp1, real_t macro_vertex_coord_id_3comp2, std::shared_ptr< SparseMatrixProxy > mat, int64_t micro_edges_per_macro_edge, real_t micro_edges_per_macro_edge_float ) const +{ + { + const real_t _data_q_w [] = {-0.1333333333333333, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983, 0.074999999999999983}; + + const real_t _data_q_p_0 [] = {0.25, 0.16666666666666666, 0.16666666666666666, 0.5, 0.16666666666666666}; + + const real_t _data_q_p_1 [] = {0.25, 0.16666666666666666, 0.5, 0.16666666666666666, 0.16666666666666666}; + + const real_t _data_q_p_2 [] = {0.25, 0.5, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666}; + + { + /* CellType.WHITE_UP */ + const real_t tmp_coords_jac_0_WHITE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t p_affine_const_0_0_WHITE_UP = macro_vertex_coord_id_0comp0; + const real_t p_affine_const_0_1_WHITE_UP = macro_vertex_coord_id_0comp1; + const real_t p_affine_const_0_2_WHITE_UP = macro_vertex_coord_id_0comp2; + const real_t p_affine_const_1_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t p_affine_const_1_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t p_affine_const_1_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t p_affine_const_2_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_2_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_2_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_3_0_WHITE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t p_affine_const_3_1_WHITE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t p_affine_const_3_2_WHITE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t jac_affine_0_0_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_1_0_WHITE_UP; + const real_t jac_affine_0_1_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_2_0_WHITE_UP; + const real_t jac_affine_0_2_WHITE_UP = -p_affine_const_0_0_WHITE_UP + p_affine_const_3_0_WHITE_UP; + const real_t jac_affine_1_0_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_1_1_WHITE_UP; + const real_t jac_affine_1_1_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_2_1_WHITE_UP; + const real_t tmp_coords_jac_5_WHITE_UP = jac_affine_0_2_WHITE_UP*jac_affine_1_1_WHITE_UP; + const real_t jac_affine_1_2_WHITE_UP = -p_affine_const_0_1_WHITE_UP + p_affine_const_3_1_WHITE_UP; + const real_t tmp_coords_jac_3_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_1_2_WHITE_UP; + const real_t jac_affine_2_0_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_1_2_WHITE_UP; + const real_t jac_affine_2_1_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_2_2_WHITE_UP; + const real_t tmp_coords_jac_2_WHITE_UP = jac_affine_1_2_WHITE_UP*jac_affine_2_1_WHITE_UP; + const real_t jac_affine_2_2_WHITE_UP = -p_affine_const_0_2_WHITE_UP + p_affine_const_3_2_WHITE_UP; + const real_t tmp_coords_jac_1_WHITE_UP = jac_affine_1_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_4_WHITE_UP = jac_affine_0_1_WHITE_UP*jac_affine_2_2_WHITE_UP; + const real_t tmp_coords_jac_6_WHITE_UP = 1.0 / (jac_affine_0_0_WHITE_UP*tmp_coords_jac_1_WHITE_UP - jac_affine_0_0_WHITE_UP*tmp_coords_jac_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_0_WHITE_UP*tmp_coords_jac_4_WHITE_UP + jac_affine_2_0_WHITE_UP*tmp_coords_jac_3_WHITE_UP - jac_affine_2_0_WHITE_UP*tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_0_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_1_WHITE_UP - tmp_coords_jac_2_WHITE_UP); + const real_t jac_affine_inv_0_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_2_WHITE_UP*jac_affine_2_1_WHITE_UP - tmp_coords_jac_4_WHITE_UP); + const real_t jac_affine_inv_0_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(tmp_coords_jac_3_WHITE_UP - tmp_coords_jac_5_WHITE_UP); + const real_t jac_affine_inv_1_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_1_0_WHITE_UP*jac_affine_2_2_WHITE_UP + jac_affine_1_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_2_2_WHITE_UP - jac_affine_0_2_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_1_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_1_2_WHITE_UP + jac_affine_0_2_WHITE_UP*jac_affine_1_0_WHITE_UP); + const real_t jac_affine_inv_2_0_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_1_0_WHITE_UP*jac_affine_2_1_WHITE_UP - jac_affine_1_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_1_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(-jac_affine_0_0_WHITE_UP*jac_affine_2_1_WHITE_UP + jac_affine_0_1_WHITE_UP*jac_affine_2_0_WHITE_UP); + const real_t jac_affine_inv_2_2_WHITE_UP = tmp_coords_jac_6_WHITE_UP*(jac_affine_0_0_WHITE_UP*jac_affine_1_1_WHITE_UP - jac_affine_0_1_WHITE_UP*jac_affine_1_0_WHITE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_UP*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_UP*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.WHITE_DOWN */ + const real_t tmp_coords_jac_0_WHITE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_3_WHITE_DOWN = tmp_coords_jac_1_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t tmp_coords_jac_4_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_5_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_WHITE_DOWN = tmp_coords_jac_4_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t tmp_coords_jac_7_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_8_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_9_WHITE_DOWN = tmp_coords_jac_7_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t tmp_coords_jac_10_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_11_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_12_WHITE_DOWN = tmp_coords_jac_0_WHITE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_WHITE_DOWN = tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_0_1_WHITE_DOWN = tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_0_2_WHITE_DOWN = tmp_coords_jac_9_WHITE_DOWN; + const real_t p_affine_const_1_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_2_WHITE_DOWN; + const real_t p_affine_const_1_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_5_WHITE_DOWN; + const real_t p_affine_const_1_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_8_WHITE_DOWN; + const real_t p_affine_const_2_0_WHITE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_1_WHITE_DOWN; + const real_t p_affine_const_2_1_WHITE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_4_WHITE_DOWN; + const real_t p_affine_const_2_2_WHITE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_7_WHITE_DOWN; + const real_t p_affine_const_3_0_WHITE_DOWN = tmp_coords_jac_10_WHITE_DOWN + tmp_coords_jac_3_WHITE_DOWN; + const real_t p_affine_const_3_1_WHITE_DOWN = tmp_coords_jac_11_WHITE_DOWN + tmp_coords_jac_6_WHITE_DOWN; + const real_t p_affine_const_3_2_WHITE_DOWN = tmp_coords_jac_12_WHITE_DOWN + tmp_coords_jac_9_WHITE_DOWN; + const real_t jac_affine_0_0_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_1_0_WHITE_DOWN; + const real_t jac_affine_0_1_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_2_0_WHITE_DOWN; + const real_t jac_affine_0_2_WHITE_DOWN = -p_affine_const_0_0_WHITE_DOWN + p_affine_const_3_0_WHITE_DOWN; + const real_t jac_affine_1_0_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_1_1_WHITE_DOWN; + const real_t jac_affine_1_1_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_2_1_WHITE_DOWN; + const real_t tmp_coords_jac_17_WHITE_DOWN = jac_affine_0_2_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN; + const real_t jac_affine_1_2_WHITE_DOWN = -p_affine_const_0_1_WHITE_DOWN + p_affine_const_3_1_WHITE_DOWN; + const real_t tmp_coords_jac_15_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN; + const real_t jac_affine_2_0_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_1_2_WHITE_DOWN; + const real_t jac_affine_2_1_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_14_WHITE_DOWN = jac_affine_1_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN; + const real_t jac_affine_2_2_WHITE_DOWN = -p_affine_const_0_2_WHITE_DOWN + p_affine_const_3_2_WHITE_DOWN; + const real_t tmp_coords_jac_13_WHITE_DOWN = jac_affine_1_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_16_WHITE_DOWN = jac_affine_0_1_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN; + const real_t tmp_coords_jac_18_WHITE_DOWN = 1.0 / (jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_13_WHITE_DOWN - jac_affine_0_0_WHITE_DOWN*tmp_coords_jac_14_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_0_WHITE_DOWN*tmp_coords_jac_16_WHITE_DOWN + jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_15_WHITE_DOWN - jac_affine_2_0_WHITE_DOWN*tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_0_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_13_WHITE_DOWN - tmp_coords_jac_14_WHITE_DOWN); + const real_t jac_affine_inv_0_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_2_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - tmp_coords_jac_16_WHITE_DOWN); + const real_t jac_affine_inv_0_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(tmp_coords_jac_15_WHITE_DOWN - tmp_coords_jac_17_WHITE_DOWN); + const real_t jac_affine_inv_1_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_1_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN + jac_affine_1_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_2_2_WHITE_DOWN - jac_affine_0_2_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_1_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_1_2_WHITE_DOWN + jac_affine_0_2_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + const real_t jac_affine_inv_2_0_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_1_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN - jac_affine_1_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_1_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(-jac_affine_0_0_WHITE_DOWN*jac_affine_2_1_WHITE_DOWN + jac_affine_0_1_WHITE_DOWN*jac_affine_2_0_WHITE_DOWN); + const real_t jac_affine_inv_2_2_WHITE_DOWN = tmp_coords_jac_18_WHITE_DOWN*(jac_affine_0_0_WHITE_DOWN*jac_affine_1_1_WHITE_DOWN - jac_affine_0_1_WHITE_DOWN*jac_affine_1_0_WHITE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 2; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_WHITE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_WHITE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_WHITE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6)) + 1])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.BLUE_UP */ + const real_t tmp_coords_jac_0_BLUE_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_5_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_6_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_0_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_0_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_0_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP; + const real_t p_affine_const_1_0_BLUE_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_1_1_BLUE_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_1_2_BLUE_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_2_0_BLUE_UP = tmp_coords_jac_1_BLUE_UP + tmp_coords_jac_4_BLUE_UP; + const real_t p_affine_const_2_1_BLUE_UP = tmp_coords_jac_2_BLUE_UP + tmp_coords_jac_5_BLUE_UP; + const real_t p_affine_const_2_2_BLUE_UP = tmp_coords_jac_3_BLUE_UP + tmp_coords_jac_6_BLUE_UP; + const real_t p_affine_const_3_0_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0) + tmp_coords_jac_1_BLUE_UP; + const real_t p_affine_const_3_1_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1) + tmp_coords_jac_2_BLUE_UP; + const real_t p_affine_const_3_2_BLUE_UP = tmp_coords_jac_0_BLUE_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2) + tmp_coords_jac_3_BLUE_UP; + const real_t jac_affine_0_0_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_1_0_BLUE_UP; + const real_t jac_affine_0_1_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_2_0_BLUE_UP; + const real_t jac_affine_0_2_BLUE_UP = -p_affine_const_0_0_BLUE_UP + p_affine_const_3_0_BLUE_UP; + const real_t jac_affine_1_0_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_1_1_BLUE_UP; + const real_t jac_affine_1_1_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_2_1_BLUE_UP; + const real_t tmp_coords_jac_11_BLUE_UP = jac_affine_0_2_BLUE_UP*jac_affine_1_1_BLUE_UP; + const real_t jac_affine_1_2_BLUE_UP = -p_affine_const_0_1_BLUE_UP + p_affine_const_3_1_BLUE_UP; + const real_t tmp_coords_jac_9_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_1_2_BLUE_UP; + const real_t jac_affine_2_0_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_1_2_BLUE_UP; + const real_t jac_affine_2_1_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_2_2_BLUE_UP; + const real_t tmp_coords_jac_8_BLUE_UP = jac_affine_1_2_BLUE_UP*jac_affine_2_1_BLUE_UP; + const real_t jac_affine_2_2_BLUE_UP = -p_affine_const_0_2_BLUE_UP + p_affine_const_3_2_BLUE_UP; + const real_t tmp_coords_jac_7_BLUE_UP = jac_affine_1_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_10_BLUE_UP = jac_affine_0_1_BLUE_UP*jac_affine_2_2_BLUE_UP; + const real_t tmp_coords_jac_12_BLUE_UP = 1.0 / (jac_affine_0_0_BLUE_UP*tmp_coords_jac_7_BLUE_UP - jac_affine_0_0_BLUE_UP*tmp_coords_jac_8_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_0_BLUE_UP*tmp_coords_jac_10_BLUE_UP - jac_affine_2_0_BLUE_UP*tmp_coords_jac_11_BLUE_UP + jac_affine_2_0_BLUE_UP*tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_0_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(tmp_coords_jac_7_BLUE_UP - tmp_coords_jac_8_BLUE_UP); + const real_t jac_affine_inv_0_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_2_BLUE_UP*jac_affine_2_1_BLUE_UP - tmp_coords_jac_10_BLUE_UP); + const real_t jac_affine_inv_0_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-tmp_coords_jac_11_BLUE_UP + tmp_coords_jac_9_BLUE_UP); + const real_t jac_affine_inv_1_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_1_0_BLUE_UP*jac_affine_2_2_BLUE_UP + jac_affine_1_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_2_2_BLUE_UP - jac_affine_0_2_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_1_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_1_2_BLUE_UP + jac_affine_0_2_BLUE_UP*jac_affine_1_0_BLUE_UP); + const real_t jac_affine_inv_2_0_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_1_0_BLUE_UP*jac_affine_2_1_BLUE_UP - jac_affine_1_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_1_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(-jac_affine_0_0_BLUE_UP*jac_affine_2_1_BLUE_UP + jac_affine_0_1_BLUE_UP*jac_affine_2_0_BLUE_UP); + const real_t jac_affine_inv_2_2_BLUE_UP = tmp_coords_jac_12_BLUE_UP*(jac_affine_0_0_BLUE_UP*jac_affine_1_1_BLUE_UP - jac_affine_0_1_BLUE_UP*jac_affine_1_0_BLUE_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_UP*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_UP*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.BLUE_DOWN */ + const real_t tmp_coords_jac_0_BLUE_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_BLUE_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_BLUE_DOWN; + const real_t tmp_coords_jac_6_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_7_BLUE_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_6_BLUE_DOWN; + const real_t tmp_coords_jac_8_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t tmp_coords_jac_9_BLUE_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_8_BLUE_DOWN; + const real_t p_affine_const_0_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN; + const real_t p_affine_const_0_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN; + const real_t p_affine_const_0_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN; + const real_t p_affine_const_1_0_BLUE_DOWN = tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_1_1_BLUE_DOWN = tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_1_2_BLUE_DOWN = tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_2_0_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0) + tmp_coords_jac_5_BLUE_DOWN; + const real_t p_affine_const_2_1_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1) + tmp_coords_jac_7_BLUE_DOWN; + const real_t p_affine_const_2_2_BLUE_DOWN = tmp_coords_jac_0_BLUE_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2) + tmp_coords_jac_9_BLUE_DOWN; + const real_t p_affine_const_3_0_BLUE_DOWN = tmp_coords_jac_1_BLUE_DOWN + tmp_coords_jac_4_BLUE_DOWN; + const real_t p_affine_const_3_1_BLUE_DOWN = tmp_coords_jac_2_BLUE_DOWN + tmp_coords_jac_6_BLUE_DOWN; + const real_t p_affine_const_3_2_BLUE_DOWN = tmp_coords_jac_3_BLUE_DOWN + tmp_coords_jac_8_BLUE_DOWN; + const real_t jac_affine_0_0_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_1_0_BLUE_DOWN; + const real_t jac_affine_0_1_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_2_0_BLUE_DOWN; + const real_t jac_affine_0_2_BLUE_DOWN = -p_affine_const_0_0_BLUE_DOWN + p_affine_const_3_0_BLUE_DOWN; + const real_t jac_affine_1_0_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_1_1_BLUE_DOWN; + const real_t jac_affine_1_1_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_2_1_BLUE_DOWN; + const real_t tmp_coords_jac_14_BLUE_DOWN = jac_affine_0_2_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN; + const real_t jac_affine_1_2_BLUE_DOWN = -p_affine_const_0_1_BLUE_DOWN + p_affine_const_3_1_BLUE_DOWN; + const real_t tmp_coords_jac_12_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN; + const real_t jac_affine_2_0_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_1_2_BLUE_DOWN; + const real_t jac_affine_2_1_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_11_BLUE_DOWN = jac_affine_1_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN; + const real_t jac_affine_2_2_BLUE_DOWN = -p_affine_const_0_2_BLUE_DOWN + p_affine_const_3_2_BLUE_DOWN; + const real_t tmp_coords_jac_10_BLUE_DOWN = jac_affine_1_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_13_BLUE_DOWN = jac_affine_0_1_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN; + const real_t tmp_coords_jac_15_BLUE_DOWN = 1.0 / (jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_10_BLUE_DOWN - jac_affine_0_0_BLUE_DOWN*tmp_coords_jac_11_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_0_BLUE_DOWN*tmp_coords_jac_13_BLUE_DOWN + jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_12_BLUE_DOWN - jac_affine_2_0_BLUE_DOWN*tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_0_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_10_BLUE_DOWN - tmp_coords_jac_11_BLUE_DOWN); + const real_t jac_affine_inv_0_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_2_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - tmp_coords_jac_13_BLUE_DOWN); + const real_t jac_affine_inv_0_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(tmp_coords_jac_12_BLUE_DOWN - tmp_coords_jac_14_BLUE_DOWN); + const real_t jac_affine_inv_1_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_1_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN + jac_affine_1_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_2_2_BLUE_DOWN - jac_affine_0_2_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_1_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_1_2_BLUE_DOWN + jac_affine_0_2_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + const real_t jac_affine_inv_2_0_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_1_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN - jac_affine_1_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_1_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(-jac_affine_0_0_BLUE_DOWN*jac_affine_2_1_BLUE_DOWN + jac_affine_0_1_BLUE_DOWN*jac_affine_2_0_BLUE_DOWN); + const real_t jac_affine_inv_2_2_BLUE_DOWN = tmp_coords_jac_15_BLUE_DOWN*(jac_affine_0_0_BLUE_DOWN*jac_affine_1_1_BLUE_DOWN - jac_affine_0_1_BLUE_DOWN*jac_affine_1_0_BLUE_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_BLUE_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_BLUE_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_BLUE_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 2*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.GREEN_UP */ + const real_t tmp_coords_jac_0_GREEN_UP = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_2_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_3_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_4_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_5_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_6_GREEN_UP = tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP; + const real_t p_affine_const_0_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP; + const real_t p_affine_const_0_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP; + const real_t p_affine_const_1_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t p_affine_const_1_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t p_affine_const_1_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_UP*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t p_affine_const_2_0_GREEN_UP = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_2_1_GREEN_UP = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_2_2_GREEN_UP = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_UP; + const real_t p_affine_const_3_0_GREEN_UP = tmp_coords_jac_1_GREEN_UP + tmp_coords_jac_4_GREEN_UP; + const real_t p_affine_const_3_1_GREEN_UP = tmp_coords_jac_2_GREEN_UP + tmp_coords_jac_5_GREEN_UP; + const real_t p_affine_const_3_2_GREEN_UP = tmp_coords_jac_3_GREEN_UP + tmp_coords_jac_6_GREEN_UP; + const real_t jac_affine_0_0_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_1_0_GREEN_UP; + const real_t jac_affine_0_1_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_2_0_GREEN_UP; + const real_t jac_affine_0_2_GREEN_UP = -p_affine_const_0_0_GREEN_UP + p_affine_const_3_0_GREEN_UP; + const real_t jac_affine_1_0_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_1_1_GREEN_UP; + const real_t jac_affine_1_1_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_2_1_GREEN_UP; + const real_t tmp_coords_jac_11_GREEN_UP = jac_affine_0_2_GREEN_UP*jac_affine_1_1_GREEN_UP; + const real_t jac_affine_1_2_GREEN_UP = -p_affine_const_0_1_GREEN_UP + p_affine_const_3_1_GREEN_UP; + const real_t tmp_coords_jac_9_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_1_2_GREEN_UP; + const real_t jac_affine_2_0_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_1_2_GREEN_UP; + const real_t jac_affine_2_1_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_2_2_GREEN_UP; + const real_t tmp_coords_jac_8_GREEN_UP = jac_affine_1_2_GREEN_UP*jac_affine_2_1_GREEN_UP; + const real_t jac_affine_2_2_GREEN_UP = -p_affine_const_0_2_GREEN_UP + p_affine_const_3_2_GREEN_UP; + const real_t tmp_coords_jac_7_GREEN_UP = jac_affine_1_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_10_GREEN_UP = jac_affine_0_1_GREEN_UP*jac_affine_2_2_GREEN_UP; + const real_t tmp_coords_jac_12_GREEN_UP = 1.0 / (jac_affine_0_0_GREEN_UP*tmp_coords_jac_7_GREEN_UP - jac_affine_0_0_GREEN_UP*tmp_coords_jac_8_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_0_GREEN_UP*tmp_coords_jac_10_GREEN_UP - jac_affine_2_0_GREEN_UP*tmp_coords_jac_11_GREEN_UP + jac_affine_2_0_GREEN_UP*tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_0_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(tmp_coords_jac_7_GREEN_UP - tmp_coords_jac_8_GREEN_UP); + const real_t jac_affine_inv_0_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_2_GREEN_UP*jac_affine_2_1_GREEN_UP - tmp_coords_jac_10_GREEN_UP); + const real_t jac_affine_inv_0_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-tmp_coords_jac_11_GREEN_UP + tmp_coords_jac_9_GREEN_UP); + const real_t jac_affine_inv_1_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_1_0_GREEN_UP*jac_affine_2_2_GREEN_UP + jac_affine_1_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_2_2_GREEN_UP - jac_affine_0_2_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_1_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_1_2_GREEN_UP + jac_affine_0_2_GREEN_UP*jac_affine_1_0_GREEN_UP); + const real_t jac_affine_inv_2_0_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_1_0_GREEN_UP*jac_affine_2_1_GREEN_UP - jac_affine_1_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_1_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(-jac_affine_0_0_GREEN_UP*jac_affine_2_1_GREEN_UP + jac_affine_0_1_GREEN_UP*jac_affine_2_0_GREEN_UP); + const real_t jac_affine_inv_2_2_GREEN_UP = tmp_coords_jac_12_GREEN_UP*(jac_affine_0_0_GREEN_UP*jac_affine_1_1_GREEN_UP - jac_affine_0_1_GREEN_UP*jac_affine_1_0_GREEN_UP); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_UP*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_UP*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_UP*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 2) - ((ctr_1*(ctr_1 + 1)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + { + /* CellType.GREEN_DOWN */ + const real_t tmp_coords_jac_0_GREEN_DOWN = 1.0 / (micro_edges_per_macro_edge_float)*1.0; + const real_t tmp_coords_jac_1_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0); + const real_t tmp_coords_jac_2_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1); + const real_t tmp_coords_jac_3_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2); + const real_t tmp_coords_jac_4_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0); + const real_t tmp_coords_jac_5_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1); + const real_t tmp_coords_jac_6_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2); + const real_t tmp_coords_jac_7_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0); + const real_t tmp_coords_jac_8_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1); + const real_t tmp_coords_jac_9_GREEN_DOWN = tmp_coords_jac_0_GREEN_DOWN*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2); + const real_t p_affine_const_0_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN; + const real_t p_affine_const_0_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN; + const real_t p_affine_const_0_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN; + const real_t p_affine_const_1_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_4_GREEN_DOWN; + const real_t p_affine_const_1_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_5_GREEN_DOWN; + const real_t p_affine_const_1_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_6_GREEN_DOWN; + const real_t p_affine_const_2_0_GREEN_DOWN = macro_vertex_coord_id_0comp0 + tmp_coords_jac_4_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_2_1_GREEN_DOWN = macro_vertex_coord_id_0comp1 + tmp_coords_jac_5_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_2_2_GREEN_DOWN = macro_vertex_coord_id_0comp2 + tmp_coords_jac_6_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t p_affine_const_3_0_GREEN_DOWN = tmp_coords_jac_1_GREEN_DOWN + tmp_coords_jac_7_GREEN_DOWN; + const real_t p_affine_const_3_1_GREEN_DOWN = tmp_coords_jac_2_GREEN_DOWN + tmp_coords_jac_8_GREEN_DOWN; + const real_t p_affine_const_3_2_GREEN_DOWN = tmp_coords_jac_3_GREEN_DOWN + tmp_coords_jac_9_GREEN_DOWN; + const real_t jac_affine_0_0_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_1_0_GREEN_DOWN; + const real_t jac_affine_0_1_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_2_0_GREEN_DOWN; + const real_t jac_affine_0_2_GREEN_DOWN = -p_affine_const_0_0_GREEN_DOWN + p_affine_const_3_0_GREEN_DOWN; + const real_t jac_affine_1_0_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_1_1_GREEN_DOWN; + const real_t jac_affine_1_1_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_2_1_GREEN_DOWN; + const real_t tmp_coords_jac_14_GREEN_DOWN = jac_affine_0_2_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN; + const real_t jac_affine_1_2_GREEN_DOWN = -p_affine_const_0_1_GREEN_DOWN + p_affine_const_3_1_GREEN_DOWN; + const real_t tmp_coords_jac_12_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN; + const real_t jac_affine_2_0_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_1_2_GREEN_DOWN; + const real_t jac_affine_2_1_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_11_GREEN_DOWN = jac_affine_1_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN; + const real_t jac_affine_2_2_GREEN_DOWN = -p_affine_const_0_2_GREEN_DOWN + p_affine_const_3_2_GREEN_DOWN; + const real_t tmp_coords_jac_10_GREEN_DOWN = jac_affine_1_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_13_GREEN_DOWN = jac_affine_0_1_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN; + const real_t tmp_coords_jac_15_GREEN_DOWN = 1.0 / (jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_10_GREEN_DOWN - jac_affine_0_0_GREEN_DOWN*tmp_coords_jac_11_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_0_GREEN_DOWN*tmp_coords_jac_13_GREEN_DOWN + jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_12_GREEN_DOWN - jac_affine_2_0_GREEN_DOWN*tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_0_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_10_GREEN_DOWN - tmp_coords_jac_11_GREEN_DOWN); + const real_t jac_affine_inv_0_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_2_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - tmp_coords_jac_13_GREEN_DOWN); + const real_t jac_affine_inv_0_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(tmp_coords_jac_12_GREEN_DOWN - tmp_coords_jac_14_GREEN_DOWN); + const real_t jac_affine_inv_1_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_1_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN + jac_affine_1_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_2_2_GREEN_DOWN - jac_affine_0_2_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_1_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_1_2_GREEN_DOWN + jac_affine_0_2_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + const real_t jac_affine_inv_2_0_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_1_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN - jac_affine_1_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_1_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(-jac_affine_0_0_GREEN_DOWN*jac_affine_2_1_GREEN_DOWN + jac_affine_0_1_GREEN_DOWN*jac_affine_2_0_GREEN_DOWN); + const real_t jac_affine_inv_2_2_GREEN_DOWN = tmp_coords_jac_15_GREEN_DOWN*(jac_affine_0_0_GREEN_DOWN*jac_affine_1_1_GREEN_DOWN - jac_affine_0_1_GREEN_DOWN*jac_affine_1_0_GREEN_DOWN); + for (int64_t ctr_2 = 0; ctr_2 < micro_edges_per_macro_edge; ctr_2 += 1) + for (int64_t ctr_1 = 0; ctr_1 < -ctr_2 + micro_edges_per_macro_edge; ctr_1 += 1) + for (int64_t ctr_0 = 0; ctr_0 < -ctr_1 - ctr_2 + micro_edges_per_macro_edge - 1; ctr_0 += 1) + { + const real_t p_affine_0_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_0_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2)); + const real_t p_affine_1_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2)); + const real_t p_affine_2_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_2_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_0 = macro_vertex_coord_id_0comp0 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_1comp0)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_2comp0)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp0 + macro_vertex_coord_id_3comp0)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_1 = macro_vertex_coord_id_0comp1 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_1comp1)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_2comp1)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp1 + macro_vertex_coord_id_3comp1)*1.0*((real_t)(ctr_2 + 1)); + const real_t p_affine_3_2 = macro_vertex_coord_id_0comp2 + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_1comp2)*1.0*((real_t)(ctr_0)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_2comp2)*1.0*((real_t)(ctr_1 + 1)) + 1.0 / (micro_edges_per_macro_edge_float)*(-macro_vertex_coord_id_0comp2 + macro_vertex_coord_id_3comp2)*1.0*((real_t)(ctr_2 + 1)); + const real_t rho_dof_0 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_1 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_2 = _data_rhoVertex[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1]; + const real_t rho_dof_3 = _data_rhoVertex[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))]; + const real_t rho_dof_4 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_5 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_6 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1]; + const real_t rho_dof_7 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + const real_t rho_dof_8 = _data_rhoEdge[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))]; + const real_t rho_dof_9 = _data_rhoEdge[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))]; + real_t q_acc_0_0 = 0.0; + real_t q_acc_0_1 = 0.0; + real_t q_acc_0_2 = 0.0; + real_t q_acc_0_3 = 0.0; + real_t q_acc_0_4 = 0.0; + real_t q_acc_0_5 = 0.0; + real_t q_acc_0_6 = 0.0; + real_t q_acc_0_7 = 0.0; + real_t q_acc_0_8 = 0.0; + real_t q_acc_0_9 = 0.0; + real_t q_acc_0_10 = 0.0; + real_t q_acc_0_11 = 0.0; + real_t q_acc_0_12 = 0.0; + real_t q_acc_0_13 = 0.0; + real_t q_acc_0_14 = 0.0; + real_t q_acc_0_15 = 0.0; + real_t q_acc_0_16 = 0.0; + real_t q_acc_0_17 = 0.0; + real_t q_acc_0_18 = 0.0; + real_t q_acc_0_19 = 0.0; + real_t q_acc_0_20 = 0.0; + real_t q_acc_0_21 = 0.0; + real_t q_acc_0_22 = 0.0; + real_t q_acc_0_23 = 0.0; + real_t q_acc_0_24 = 0.0; + real_t q_acc_0_25 = 0.0; + real_t q_acc_0_26 = 0.0; + real_t q_acc_0_27 = 0.0; + real_t q_acc_0_28 = 0.0; + real_t q_acc_0_29 = 0.0; + real_t q_acc_1_0 = 0.0; + real_t q_acc_1_1 = 0.0; + real_t q_acc_1_2 = 0.0; + real_t q_acc_1_3 = 0.0; + real_t q_acc_1_4 = 0.0; + real_t q_acc_1_5 = 0.0; + real_t q_acc_1_6 = 0.0; + real_t q_acc_1_7 = 0.0; + real_t q_acc_1_8 = 0.0; + real_t q_acc_1_9 = 0.0; + real_t q_acc_1_10 = 0.0; + real_t q_acc_1_11 = 0.0; + real_t q_acc_1_12 = 0.0; + real_t q_acc_1_13 = 0.0; + real_t q_acc_1_14 = 0.0; + real_t q_acc_1_15 = 0.0; + real_t q_acc_1_16 = 0.0; + real_t q_acc_1_17 = 0.0; + real_t q_acc_1_18 = 0.0; + real_t q_acc_1_19 = 0.0; + real_t q_acc_1_20 = 0.0; + real_t q_acc_1_21 = 0.0; + real_t q_acc_1_22 = 0.0; + real_t q_acc_1_23 = 0.0; + real_t q_acc_1_24 = 0.0; + real_t q_acc_1_25 = 0.0; + real_t q_acc_1_26 = 0.0; + real_t q_acc_1_27 = 0.0; + real_t q_acc_1_28 = 0.0; + real_t q_acc_1_29 = 0.0; + real_t q_acc_2_0 = 0.0; + real_t q_acc_2_1 = 0.0; + real_t q_acc_2_2 = 0.0; + real_t q_acc_2_3 = 0.0; + real_t q_acc_2_4 = 0.0; + real_t q_acc_2_5 = 0.0; + real_t q_acc_2_6 = 0.0; + real_t q_acc_2_7 = 0.0; + real_t q_acc_2_8 = 0.0; + real_t q_acc_2_9 = 0.0; + real_t q_acc_2_10 = 0.0; + real_t q_acc_2_11 = 0.0; + real_t q_acc_2_12 = 0.0; + real_t q_acc_2_13 = 0.0; + real_t q_acc_2_14 = 0.0; + real_t q_acc_2_15 = 0.0; + real_t q_acc_2_16 = 0.0; + real_t q_acc_2_17 = 0.0; + real_t q_acc_2_18 = 0.0; + real_t q_acc_2_19 = 0.0; + real_t q_acc_2_20 = 0.0; + real_t q_acc_2_21 = 0.0; + real_t q_acc_2_22 = 0.0; + real_t q_acc_2_23 = 0.0; + real_t q_acc_2_24 = 0.0; + real_t q_acc_2_25 = 0.0; + real_t q_acc_2_26 = 0.0; + real_t q_acc_2_27 = 0.0; + real_t q_acc_2_28 = 0.0; + real_t q_acc_2_29 = 0.0; + real_t q_acc_3_0 = 0.0; + real_t q_acc_3_1 = 0.0; + real_t q_acc_3_2 = 0.0; + real_t q_acc_3_3 = 0.0; + real_t q_acc_3_4 = 0.0; + real_t q_acc_3_5 = 0.0; + real_t q_acc_3_6 = 0.0; + real_t q_acc_3_7 = 0.0; + real_t q_acc_3_8 = 0.0; + real_t q_acc_3_9 = 0.0; + real_t q_acc_3_10 = 0.0; + real_t q_acc_3_11 = 0.0; + real_t q_acc_3_12 = 0.0; + real_t q_acc_3_13 = 0.0; + real_t q_acc_3_14 = 0.0; + real_t q_acc_3_15 = 0.0; + real_t q_acc_3_16 = 0.0; + real_t q_acc_3_17 = 0.0; + real_t q_acc_3_18 = 0.0; + real_t q_acc_3_19 = 0.0; + real_t q_acc_3_20 = 0.0; + real_t q_acc_3_21 = 0.0; + real_t q_acc_3_22 = 0.0; + real_t q_acc_3_23 = 0.0; + real_t q_acc_3_24 = 0.0; + real_t q_acc_3_25 = 0.0; + real_t q_acc_3_26 = 0.0; + real_t q_acc_3_27 = 0.0; + real_t q_acc_3_28 = 0.0; + real_t q_acc_3_29 = 0.0; + for (int64_t q = 0; q < 5; q += 1) + { + const real_t tmp_qloop_0 = (_data_q_p_0[q]*_data_q_p_0[q]); + const real_t tmp_qloop_1 = tmp_qloop_0*2.0; + const real_t tmp_qloop_2 = (_data_q_p_1[q]*_data_q_p_1[q]); + const real_t tmp_qloop_3 = tmp_qloop_2*2.0; + const real_t tmp_qloop_4 = (_data_q_p_2[q]*_data_q_p_2[q]); + const real_t tmp_qloop_5 = tmp_qloop_4*2.0; + const real_t tmp_qloop_6 = 4.0*_data_q_p_1[q]; + const real_t tmp_qloop_7 = tmp_qloop_6*_data_q_p_2[q]; + const real_t tmp_qloop_8 = 4.0*_data_q_p_0[q]; + const real_t tmp_qloop_9 = tmp_qloop_8*_data_q_p_1[q]; + const real_t tmp_qloop_10 = tmp_qloop_8*_data_q_p_2[q]; + const real_t tmp_qloop_11 = tmp_qloop_10 + tmp_qloop_9; + const real_t tmp_qloop_12 = tmp_qloop_1 + tmp_qloop_11 + tmp_qloop_3 + tmp_qloop_5 + tmp_qloop_7 - 3.0*_data_q_p_0[q] - 3.0*_data_q_p_1[q] - 3.0*_data_q_p_2[q] + 1.0; + const real_t tmp_qloop_13 = 4.0*_data_q_p_2[q]; + const real_t tmp_qloop_14 = tmp_qloop_13 + tmp_qloop_6; + const real_t tmp_qloop_15 = -rho_dof_8*tmp_qloop_6; + const real_t tmp_qloop_16 = rho_dof_0*(tmp_qloop_14 + tmp_qloop_8 - 3.0); + const real_t tmp_qloop_17 = -rho_dof_7*tmp_qloop_13 + tmp_qloop_16; + const real_t tmp_qloop_18 = rho_dof_1*(tmp_qloop_8 - 1.0) + rho_dof_5*tmp_qloop_13 + rho_dof_6*tmp_qloop_6 + rho_dof_9*(-tmp_qloop_14 - 8.0*_data_q_p_0[q] + 4.0) + tmp_qloop_15 + tmp_qloop_17; + const real_t tmp_qloop_19 = tmp_qloop_8 - 4.0; + const real_t tmp_qloop_20 = -rho_dof_9*tmp_qloop_8; + const real_t tmp_qloop_21 = rho_dof_2*(tmp_qloop_6 - 1.0) + rho_dof_4*tmp_qloop_13 + rho_dof_6*tmp_qloop_8 + rho_dof_8*(-tmp_qloop_13 - tmp_qloop_19 - 8.0*_data_q_p_1[q]) + tmp_qloop_17 + tmp_qloop_20; + const real_t tmp_qloop_22 = rho_dof_3*(tmp_qloop_13 - 1.0) + rho_dof_4*tmp_qloop_6 + rho_dof_5*tmp_qloop_8 + rho_dof_7*(-tmp_qloop_19 - tmp_qloop_6 - 8.0*_data_q_p_2[q]) + tmp_qloop_15 + tmp_qloop_16 + tmp_qloop_20; + const real_t tmp_qloop_23 = jac_affine_inv_0_0_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_0_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_0_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_24 = tmp_qloop_1 - _data_q_p_0[q]; + const real_t tmp_qloop_25 = tmp_qloop_3 - _data_q_p_1[q]; + const real_t tmp_qloop_26 = tmp_qloop_5 - _data_q_p_2[q]; + const real_t tmp_qloop_27 = -tmp_qloop_10 + tmp_qloop_13 + tmp_qloop_4*-4.0 - tmp_qloop_7; + const real_t tmp_qloop_28 = tmp_qloop_2*4.0; + const real_t tmp_qloop_29 = -tmp_qloop_28 + tmp_qloop_6 - tmp_qloop_7 - tmp_qloop_9; + const real_t tmp_qloop_30 = tmp_qloop_0*4.0; + const real_t tmp_qloop_31 = -tmp_qloop_11 - tmp_qloop_30 + tmp_qloop_8; + const real_t tmp_qloop_32 = 1.0 / (rho_dof_0*tmp_qloop_12 + rho_dof_1*tmp_qloop_24 + rho_dof_2*tmp_qloop_25 + rho_dof_3*tmp_qloop_26 + rho_dof_4*tmp_qloop_7 + rho_dof_5*tmp_qloop_10 + rho_dof_6*tmp_qloop_9 + rho_dof_7*tmp_qloop_27 + rho_dof_8*tmp_qloop_29 + rho_dof_9*tmp_qloop_31)*_data_q_w[q]; + const real_t tmp_qloop_33 = tmp_qloop_32*(1.0 - _data_q_p_0[q] - _data_q_p_1[q] - _data_q_p_2[q]); + const real_t tmp_qloop_34 = tmp_qloop_23*tmp_qloop_33; + const real_t tmp_qloop_35 = jac_affine_inv_0_1_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_1_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_1_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_36 = tmp_qloop_33*tmp_qloop_35; + const real_t tmp_qloop_37 = jac_affine_inv_0_2_GREEN_DOWN*tmp_qloop_18 + jac_affine_inv_1_2_GREEN_DOWN*tmp_qloop_21 + jac_affine_inv_2_2_GREEN_DOWN*tmp_qloop_22; + const real_t tmp_qloop_38 = tmp_qloop_33*tmp_qloop_37; + const real_t tmp_qloop_39 = tmp_qloop_32*_data_q_p_0[q]; + const real_t tmp_qloop_40 = tmp_qloop_23*tmp_qloop_39; + const real_t tmp_qloop_41 = tmp_qloop_32*_data_q_p_2[q]; + const real_t tmp_qloop_42 = tmp_qloop_23*tmp_qloop_41; + const real_t tmp_qloop_43 = tmp_qloop_42*tmp_qloop_9; + const real_t tmp_qloop_44 = tmp_qloop_32*_data_q_p_1[q]; + const real_t tmp_qloop_45 = tmp_qloop_23*tmp_qloop_44; + const real_t tmp_qloop_46 = tmp_qloop_35*tmp_qloop_39; + const real_t tmp_qloop_47 = tmp_qloop_35*tmp_qloop_41; + const real_t tmp_qloop_48 = tmp_qloop_47*tmp_qloop_9; + const real_t tmp_qloop_49 = tmp_qloop_35*tmp_qloop_44; + const real_t tmp_qloop_50 = tmp_qloop_37*tmp_qloop_39; + const real_t tmp_qloop_51 = tmp_qloop_37*tmp_qloop_41; + const real_t tmp_qloop_52 = tmp_qloop_51*tmp_qloop_9; + const real_t tmp_qloop_53 = tmp_qloop_37*tmp_qloop_44; + const real_t tmp_qloop_54 = tmp_qloop_23*tmp_qloop_32; + const real_t tmp_qloop_55 = tmp_qloop_2*tmp_qloop_8; + const real_t tmp_qloop_56 = tmp_qloop_32*tmp_qloop_55; + const real_t tmp_qloop_57 = tmp_qloop_4*tmp_qloop_54; + const real_t tmp_qloop_58 = tmp_qloop_32*tmp_qloop_4; + const real_t tmp_qloop_59 = tmp_qloop_35*tmp_qloop_58; + const real_t tmp_qloop_60 = tmp_qloop_37*tmp_qloop_58; + const real_t q_tmp_0_0 = tmp_qloop_12*tmp_qloop_34; + const real_t q_tmp_0_1 = tmp_qloop_24*tmp_qloop_34; + const real_t q_tmp_0_2 = tmp_qloop_25*tmp_qloop_34; + const real_t q_tmp_0_3 = tmp_qloop_26*tmp_qloop_34; + const real_t q_tmp_0_4 = tmp_qloop_34*tmp_qloop_7; + const real_t q_tmp_0_5 = tmp_qloop_10*tmp_qloop_34; + const real_t q_tmp_0_6 = tmp_qloop_34*tmp_qloop_9; + const real_t q_tmp_0_7 = tmp_qloop_27*tmp_qloop_34; + const real_t q_tmp_0_8 = tmp_qloop_29*tmp_qloop_34; + const real_t q_tmp_0_9 = tmp_qloop_31*tmp_qloop_34; + const real_t q_tmp_0_10 = tmp_qloop_12*tmp_qloop_36; + const real_t q_tmp_0_11 = tmp_qloop_24*tmp_qloop_36; + const real_t q_tmp_0_12 = tmp_qloop_25*tmp_qloop_36; + const real_t q_tmp_0_13 = tmp_qloop_26*tmp_qloop_36; + const real_t q_tmp_0_14 = tmp_qloop_36*tmp_qloop_7; + const real_t q_tmp_0_15 = tmp_qloop_10*tmp_qloop_36; + const real_t q_tmp_0_16 = tmp_qloop_36*tmp_qloop_9; + const real_t q_tmp_0_17 = tmp_qloop_27*tmp_qloop_36; + const real_t q_tmp_0_18 = tmp_qloop_29*tmp_qloop_36; + const real_t q_tmp_0_19 = tmp_qloop_31*tmp_qloop_36; + const real_t q_tmp_0_20 = tmp_qloop_12*tmp_qloop_38; + const real_t q_tmp_0_21 = tmp_qloop_24*tmp_qloop_38; + const real_t q_tmp_0_22 = tmp_qloop_25*tmp_qloop_38; + const real_t q_tmp_0_23 = tmp_qloop_26*tmp_qloop_38; + const real_t q_tmp_0_24 = tmp_qloop_38*tmp_qloop_7; + const real_t q_tmp_0_25 = tmp_qloop_10*tmp_qloop_38; + const real_t q_tmp_0_26 = tmp_qloop_38*tmp_qloop_9; + const real_t q_tmp_0_27 = tmp_qloop_27*tmp_qloop_38; + const real_t q_tmp_0_28 = tmp_qloop_29*tmp_qloop_38; + const real_t q_tmp_0_29 = tmp_qloop_31*tmp_qloop_38; + const real_t q_tmp_1_0 = tmp_qloop_12*tmp_qloop_40; + const real_t q_tmp_1_1 = tmp_qloop_24*tmp_qloop_40; + const real_t q_tmp_1_2 = tmp_qloop_25*tmp_qloop_40; + const real_t q_tmp_1_3 = tmp_qloop_26*tmp_qloop_40; + const real_t q_tmp_1_4 = tmp_qloop_43; + const real_t q_tmp_1_5 = tmp_qloop_30*tmp_qloop_42; + const real_t q_tmp_1_6 = tmp_qloop_30*tmp_qloop_45; + const real_t q_tmp_1_7 = tmp_qloop_27*tmp_qloop_40; + const real_t q_tmp_1_8 = tmp_qloop_29*tmp_qloop_40; + const real_t q_tmp_1_9 = tmp_qloop_31*tmp_qloop_40; + const real_t q_tmp_1_10 = tmp_qloop_12*tmp_qloop_46; + const real_t q_tmp_1_11 = tmp_qloop_24*tmp_qloop_46; + const real_t q_tmp_1_12 = tmp_qloop_25*tmp_qloop_46; + const real_t q_tmp_1_13 = tmp_qloop_26*tmp_qloop_46; + const real_t q_tmp_1_14 = tmp_qloop_48; + const real_t q_tmp_1_15 = tmp_qloop_30*tmp_qloop_47; + const real_t q_tmp_1_16 = tmp_qloop_30*tmp_qloop_49; + const real_t q_tmp_1_17 = tmp_qloop_27*tmp_qloop_46; + const real_t q_tmp_1_18 = tmp_qloop_29*tmp_qloop_46; + const real_t q_tmp_1_19 = tmp_qloop_31*tmp_qloop_46; + const real_t q_tmp_1_20 = tmp_qloop_12*tmp_qloop_50; + const real_t q_tmp_1_21 = tmp_qloop_24*tmp_qloop_50; + const real_t q_tmp_1_22 = tmp_qloop_25*tmp_qloop_50; + const real_t q_tmp_1_23 = tmp_qloop_26*tmp_qloop_50; + const real_t q_tmp_1_24 = tmp_qloop_52; + const real_t q_tmp_1_25 = tmp_qloop_30*tmp_qloop_51; + const real_t q_tmp_1_26 = tmp_qloop_30*tmp_qloop_53; + const real_t q_tmp_1_27 = tmp_qloop_27*tmp_qloop_50; + const real_t q_tmp_1_28 = tmp_qloop_29*tmp_qloop_50; + const real_t q_tmp_1_29 = tmp_qloop_31*tmp_qloop_50; + const real_t q_tmp_2_0 = tmp_qloop_12*tmp_qloop_45; + const real_t q_tmp_2_1 = tmp_qloop_24*tmp_qloop_45; + const real_t q_tmp_2_2 = tmp_qloop_25*tmp_qloop_45; + const real_t q_tmp_2_3 = tmp_qloop_26*tmp_qloop_45; + const real_t q_tmp_2_4 = tmp_qloop_28*tmp_qloop_42; + const real_t q_tmp_2_5 = tmp_qloop_43; + const real_t q_tmp_2_6 = tmp_qloop_54*tmp_qloop_55; + const real_t q_tmp_2_7 = tmp_qloop_27*tmp_qloop_45; + const real_t q_tmp_2_8 = tmp_qloop_29*tmp_qloop_45; + const real_t q_tmp_2_9 = tmp_qloop_31*tmp_qloop_45; + const real_t q_tmp_2_10 = tmp_qloop_12*tmp_qloop_49; + const real_t q_tmp_2_11 = tmp_qloop_24*tmp_qloop_49; + const real_t q_tmp_2_12 = tmp_qloop_25*tmp_qloop_49; + const real_t q_tmp_2_13 = tmp_qloop_26*tmp_qloop_49; + const real_t q_tmp_2_14 = tmp_qloop_28*tmp_qloop_47; + const real_t q_tmp_2_15 = tmp_qloop_48; + const real_t q_tmp_2_16 = tmp_qloop_35*tmp_qloop_56; + const real_t q_tmp_2_17 = tmp_qloop_27*tmp_qloop_49; + const real_t q_tmp_2_18 = tmp_qloop_29*tmp_qloop_49; + const real_t q_tmp_2_19 = tmp_qloop_31*tmp_qloop_49; + const real_t q_tmp_2_20 = tmp_qloop_12*tmp_qloop_53; + const real_t q_tmp_2_21 = tmp_qloop_24*tmp_qloop_53; + const real_t q_tmp_2_22 = tmp_qloop_25*tmp_qloop_53; + const real_t q_tmp_2_23 = tmp_qloop_26*tmp_qloop_53; + const real_t q_tmp_2_24 = tmp_qloop_28*tmp_qloop_51; + const real_t q_tmp_2_25 = tmp_qloop_52; + const real_t q_tmp_2_26 = tmp_qloop_37*tmp_qloop_56; + const real_t q_tmp_2_27 = tmp_qloop_27*tmp_qloop_53; + const real_t q_tmp_2_28 = tmp_qloop_29*tmp_qloop_53; + const real_t q_tmp_2_29 = tmp_qloop_31*tmp_qloop_53; + const real_t q_tmp_3_0 = tmp_qloop_12*tmp_qloop_42; + const real_t q_tmp_3_1 = tmp_qloop_24*tmp_qloop_42; + const real_t q_tmp_3_2 = tmp_qloop_25*tmp_qloop_42; + const real_t q_tmp_3_3 = tmp_qloop_26*tmp_qloop_42; + const real_t q_tmp_3_4 = tmp_qloop_57*tmp_qloop_6; + const real_t q_tmp_3_5 = tmp_qloop_57*tmp_qloop_8; + const real_t q_tmp_3_6 = tmp_qloop_43; + const real_t q_tmp_3_7 = tmp_qloop_27*tmp_qloop_42; + const real_t q_tmp_3_8 = tmp_qloop_29*tmp_qloop_42; + const real_t q_tmp_3_9 = tmp_qloop_31*tmp_qloop_42; + const real_t q_tmp_3_10 = tmp_qloop_12*tmp_qloop_47; + const real_t q_tmp_3_11 = tmp_qloop_24*tmp_qloop_47; + const real_t q_tmp_3_12 = tmp_qloop_25*tmp_qloop_47; + const real_t q_tmp_3_13 = tmp_qloop_26*tmp_qloop_47; + const real_t q_tmp_3_14 = tmp_qloop_59*tmp_qloop_6; + const real_t q_tmp_3_15 = tmp_qloop_59*tmp_qloop_8; + const real_t q_tmp_3_16 = tmp_qloop_48; + const real_t q_tmp_3_17 = tmp_qloop_27*tmp_qloop_47; + const real_t q_tmp_3_18 = tmp_qloop_29*tmp_qloop_47; + const real_t q_tmp_3_19 = tmp_qloop_31*tmp_qloop_47; + const real_t q_tmp_3_20 = tmp_qloop_12*tmp_qloop_51; + const real_t q_tmp_3_21 = tmp_qloop_24*tmp_qloop_51; + const real_t q_tmp_3_22 = tmp_qloop_25*tmp_qloop_51; + const real_t q_tmp_3_23 = tmp_qloop_26*tmp_qloop_51; + const real_t q_tmp_3_24 = tmp_qloop_6*tmp_qloop_60; + const real_t q_tmp_3_25 = tmp_qloop_60*tmp_qloop_8; + const real_t q_tmp_3_26 = tmp_qloop_52; + const real_t q_tmp_3_27 = tmp_qloop_27*tmp_qloop_51; + const real_t q_tmp_3_28 = tmp_qloop_29*tmp_qloop_51; + const real_t q_tmp_3_29 = tmp_qloop_31*tmp_qloop_51; + q_acc_0_0 = q_acc_0_0 + q_tmp_0_0; + q_acc_0_1 = q_acc_0_1 + q_tmp_0_1; + q_acc_0_2 = q_acc_0_2 + q_tmp_0_2; + q_acc_0_3 = q_acc_0_3 + q_tmp_0_3; + q_acc_0_4 = q_acc_0_4 + q_tmp_0_4; + q_acc_0_5 = q_acc_0_5 + q_tmp_0_5; + q_acc_0_6 = q_acc_0_6 + q_tmp_0_6; + q_acc_0_7 = q_acc_0_7 + q_tmp_0_7; + q_acc_0_8 = q_acc_0_8 + q_tmp_0_8; + q_acc_0_9 = q_acc_0_9 + q_tmp_0_9; + q_acc_0_10 = q_acc_0_10 + q_tmp_0_10; + q_acc_0_11 = q_acc_0_11 + q_tmp_0_11; + q_acc_0_12 = q_acc_0_12 + q_tmp_0_12; + q_acc_0_13 = q_acc_0_13 + q_tmp_0_13; + q_acc_0_14 = q_acc_0_14 + q_tmp_0_14; + q_acc_0_15 = q_acc_0_15 + q_tmp_0_15; + q_acc_0_16 = q_acc_0_16 + q_tmp_0_16; + q_acc_0_17 = q_acc_0_17 + q_tmp_0_17; + q_acc_0_18 = q_acc_0_18 + q_tmp_0_18; + q_acc_0_19 = q_acc_0_19 + q_tmp_0_19; + q_acc_0_20 = q_acc_0_20 + q_tmp_0_20; + q_acc_0_21 = q_acc_0_21 + q_tmp_0_21; + q_acc_0_22 = q_acc_0_22 + q_tmp_0_22; + q_acc_0_23 = q_acc_0_23 + q_tmp_0_23; + q_acc_0_24 = q_acc_0_24 + q_tmp_0_24; + q_acc_0_25 = q_acc_0_25 + q_tmp_0_25; + q_acc_0_26 = q_acc_0_26 + q_tmp_0_26; + q_acc_0_27 = q_acc_0_27 + q_tmp_0_27; + q_acc_0_28 = q_acc_0_28 + q_tmp_0_28; + q_acc_0_29 = q_acc_0_29 + q_tmp_0_29; + q_acc_1_0 = q_acc_1_0 + q_tmp_1_0; + q_acc_1_1 = q_acc_1_1 + q_tmp_1_1; + q_acc_1_2 = q_acc_1_2 + q_tmp_1_2; + q_acc_1_3 = q_acc_1_3 + q_tmp_1_3; + q_acc_1_4 = q_acc_1_4 + q_tmp_1_4; + q_acc_1_5 = q_acc_1_5 + q_tmp_1_5; + q_acc_1_6 = q_acc_1_6 + q_tmp_1_6; + q_acc_1_7 = q_acc_1_7 + q_tmp_1_7; + q_acc_1_8 = q_acc_1_8 + q_tmp_1_8; + q_acc_1_9 = q_acc_1_9 + q_tmp_1_9; + q_acc_1_10 = q_acc_1_10 + q_tmp_1_10; + q_acc_1_11 = q_acc_1_11 + q_tmp_1_11; + q_acc_1_12 = q_acc_1_12 + q_tmp_1_12; + q_acc_1_13 = q_acc_1_13 + q_tmp_1_13; + q_acc_1_14 = q_acc_1_14 + q_tmp_1_14; + q_acc_1_15 = q_acc_1_15 + q_tmp_1_15; + q_acc_1_16 = q_acc_1_16 + q_tmp_1_16; + q_acc_1_17 = q_acc_1_17 + q_tmp_1_17; + q_acc_1_18 = q_acc_1_18 + q_tmp_1_18; + q_acc_1_19 = q_acc_1_19 + q_tmp_1_19; + q_acc_1_20 = q_acc_1_20 + q_tmp_1_20; + q_acc_1_21 = q_acc_1_21 + q_tmp_1_21; + q_acc_1_22 = q_acc_1_22 + q_tmp_1_22; + q_acc_1_23 = q_acc_1_23 + q_tmp_1_23; + q_acc_1_24 = q_acc_1_24 + q_tmp_1_24; + q_acc_1_25 = q_acc_1_25 + q_tmp_1_25; + q_acc_1_26 = q_acc_1_26 + q_tmp_1_26; + q_acc_1_27 = q_acc_1_27 + q_tmp_1_27; + q_acc_1_28 = q_acc_1_28 + q_tmp_1_28; + q_acc_1_29 = q_acc_1_29 + q_tmp_1_29; + q_acc_2_0 = q_acc_2_0 + q_tmp_2_0; + q_acc_2_1 = q_acc_2_1 + q_tmp_2_1; + q_acc_2_2 = q_acc_2_2 + q_tmp_2_2; + q_acc_2_3 = q_acc_2_3 + q_tmp_2_3; + q_acc_2_4 = q_acc_2_4 + q_tmp_2_4; + q_acc_2_5 = q_acc_2_5 + q_tmp_2_5; + q_acc_2_6 = q_acc_2_6 + q_tmp_2_6; + q_acc_2_7 = q_acc_2_7 + q_tmp_2_7; + q_acc_2_8 = q_acc_2_8 + q_tmp_2_8; + q_acc_2_9 = q_acc_2_9 + q_tmp_2_9; + q_acc_2_10 = q_acc_2_10 + q_tmp_2_10; + q_acc_2_11 = q_acc_2_11 + q_tmp_2_11; + q_acc_2_12 = q_acc_2_12 + q_tmp_2_12; + q_acc_2_13 = q_acc_2_13 + q_tmp_2_13; + q_acc_2_14 = q_acc_2_14 + q_tmp_2_14; + q_acc_2_15 = q_acc_2_15 + q_tmp_2_15; + q_acc_2_16 = q_acc_2_16 + q_tmp_2_16; + q_acc_2_17 = q_acc_2_17 + q_tmp_2_17; + q_acc_2_18 = q_acc_2_18 + q_tmp_2_18; + q_acc_2_19 = q_acc_2_19 + q_tmp_2_19; + q_acc_2_20 = q_acc_2_20 + q_tmp_2_20; + q_acc_2_21 = q_acc_2_21 + q_tmp_2_21; + q_acc_2_22 = q_acc_2_22 + q_tmp_2_22; + q_acc_2_23 = q_acc_2_23 + q_tmp_2_23; + q_acc_2_24 = q_acc_2_24 + q_tmp_2_24; + q_acc_2_25 = q_acc_2_25 + q_tmp_2_25; + q_acc_2_26 = q_acc_2_26 + q_tmp_2_26; + q_acc_2_27 = q_acc_2_27 + q_tmp_2_27; + q_acc_2_28 = q_acc_2_28 + q_tmp_2_28; + q_acc_2_29 = q_acc_2_29 + q_tmp_2_29; + q_acc_3_0 = q_acc_3_0 + q_tmp_3_0; + q_acc_3_1 = q_acc_3_1 + q_tmp_3_1; + q_acc_3_2 = q_acc_3_2 + q_tmp_3_2; + q_acc_3_3 = q_acc_3_3 + q_tmp_3_3; + q_acc_3_4 = q_acc_3_4 + q_tmp_3_4; + q_acc_3_5 = q_acc_3_5 + q_tmp_3_5; + q_acc_3_6 = q_acc_3_6 + q_tmp_3_6; + q_acc_3_7 = q_acc_3_7 + q_tmp_3_7; + q_acc_3_8 = q_acc_3_8 + q_tmp_3_8; + q_acc_3_9 = q_acc_3_9 + q_tmp_3_9; + q_acc_3_10 = q_acc_3_10 + q_tmp_3_10; + q_acc_3_11 = q_acc_3_11 + q_tmp_3_11; + q_acc_3_12 = q_acc_3_12 + q_tmp_3_12; + q_acc_3_13 = q_acc_3_13 + q_tmp_3_13; + q_acc_3_14 = q_acc_3_14 + q_tmp_3_14; + q_acc_3_15 = q_acc_3_15 + q_tmp_3_15; + q_acc_3_16 = q_acc_3_16 + q_tmp_3_16; + q_acc_3_17 = q_acc_3_17 + q_tmp_3_17; + q_acc_3_18 = q_acc_3_18 + q_tmp_3_18; + q_acc_3_19 = q_acc_3_19 + q_tmp_3_19; + q_acc_3_20 = q_acc_3_20 + q_tmp_3_20; + q_acc_3_21 = q_acc_3_21 + q_tmp_3_21; + q_acc_3_22 = q_acc_3_22 + q_tmp_3_22; + q_acc_3_23 = q_acc_3_23 + q_tmp_3_23; + q_acc_3_24 = q_acc_3_24 + q_tmp_3_24; + q_acc_3_25 = q_acc_3_25 + q_tmp_3_25; + q_acc_3_26 = q_acc_3_26 + q_tmp_3_26; + q_acc_3_27 = q_acc_3_27 + q_tmp_3_27; + q_acc_3_28 = q_acc_3_28 + q_tmp_3_28; + q_acc_3_29 = q_acc_3_29 + q_tmp_3_29; + } + const real_t elMat_0_0 = q_acc_0_0; + const real_t elMat_0_1 = q_acc_0_1; + const real_t elMat_0_2 = q_acc_0_2; + const real_t elMat_0_3 = q_acc_0_3; + const real_t elMat_0_4 = q_acc_0_4; + const real_t elMat_0_5 = q_acc_0_5; + const real_t elMat_0_6 = q_acc_0_6; + const real_t elMat_0_7 = q_acc_0_7; + const real_t elMat_0_8 = q_acc_0_8; + const real_t elMat_0_9 = q_acc_0_9; + const real_t elMat_0_10 = q_acc_0_10; + const real_t elMat_0_11 = q_acc_0_11; + const real_t elMat_0_12 = q_acc_0_12; + const real_t elMat_0_13 = q_acc_0_13; + const real_t elMat_0_14 = q_acc_0_14; + const real_t elMat_0_15 = q_acc_0_15; + const real_t elMat_0_16 = q_acc_0_16; + const real_t elMat_0_17 = q_acc_0_17; + const real_t elMat_0_18 = q_acc_0_18; + const real_t elMat_0_19 = q_acc_0_19; + const real_t elMat_0_20 = q_acc_0_20; + const real_t elMat_0_21 = q_acc_0_21; + const real_t elMat_0_22 = q_acc_0_22; + const real_t elMat_0_23 = q_acc_0_23; + const real_t elMat_0_24 = q_acc_0_24; + const real_t elMat_0_25 = q_acc_0_25; + const real_t elMat_0_26 = q_acc_0_26; + const real_t elMat_0_27 = q_acc_0_27; + const real_t elMat_0_28 = q_acc_0_28; + const real_t elMat_0_29 = q_acc_0_29; + const real_t elMat_1_0 = q_acc_1_0; + const real_t elMat_1_1 = q_acc_1_1; + const real_t elMat_1_2 = q_acc_1_2; + const real_t elMat_1_3 = q_acc_1_3; + const real_t elMat_1_4 = q_acc_1_4; + const real_t elMat_1_5 = q_acc_1_5; + const real_t elMat_1_6 = q_acc_1_6; + const real_t elMat_1_7 = q_acc_1_7; + const real_t elMat_1_8 = q_acc_1_8; + const real_t elMat_1_9 = q_acc_1_9; + const real_t elMat_1_10 = q_acc_1_10; + const real_t elMat_1_11 = q_acc_1_11; + const real_t elMat_1_12 = q_acc_1_12; + const real_t elMat_1_13 = q_acc_1_13; + const real_t elMat_1_14 = q_acc_1_14; + const real_t elMat_1_15 = q_acc_1_15; + const real_t elMat_1_16 = q_acc_1_16; + const real_t elMat_1_17 = q_acc_1_17; + const real_t elMat_1_18 = q_acc_1_18; + const real_t elMat_1_19 = q_acc_1_19; + const real_t elMat_1_20 = q_acc_1_20; + const real_t elMat_1_21 = q_acc_1_21; + const real_t elMat_1_22 = q_acc_1_22; + const real_t elMat_1_23 = q_acc_1_23; + const real_t elMat_1_24 = q_acc_1_24; + const real_t elMat_1_25 = q_acc_1_25; + const real_t elMat_1_26 = q_acc_1_26; + const real_t elMat_1_27 = q_acc_1_27; + const real_t elMat_1_28 = q_acc_1_28; + const real_t elMat_1_29 = q_acc_1_29; + const real_t elMat_2_0 = q_acc_2_0; + const real_t elMat_2_1 = q_acc_2_1; + const real_t elMat_2_2 = q_acc_2_2; + const real_t elMat_2_3 = q_acc_2_3; + const real_t elMat_2_4 = q_acc_2_4; + const real_t elMat_2_5 = q_acc_2_5; + const real_t elMat_2_6 = q_acc_2_6; + const real_t elMat_2_7 = q_acc_2_7; + const real_t elMat_2_8 = q_acc_2_8; + const real_t elMat_2_9 = q_acc_2_9; + const real_t elMat_2_10 = q_acc_2_10; + const real_t elMat_2_11 = q_acc_2_11; + const real_t elMat_2_12 = q_acc_2_12; + const real_t elMat_2_13 = q_acc_2_13; + const real_t elMat_2_14 = q_acc_2_14; + const real_t elMat_2_15 = q_acc_2_15; + const real_t elMat_2_16 = q_acc_2_16; + const real_t elMat_2_17 = q_acc_2_17; + const real_t elMat_2_18 = q_acc_2_18; + const real_t elMat_2_19 = q_acc_2_19; + const real_t elMat_2_20 = q_acc_2_20; + const real_t elMat_2_21 = q_acc_2_21; + const real_t elMat_2_22 = q_acc_2_22; + const real_t elMat_2_23 = q_acc_2_23; + const real_t elMat_2_24 = q_acc_2_24; + const real_t elMat_2_25 = q_acc_2_25; + const real_t elMat_2_26 = q_acc_2_26; + const real_t elMat_2_27 = q_acc_2_27; + const real_t elMat_2_28 = q_acc_2_28; + const real_t elMat_2_29 = q_acc_2_29; + const real_t elMat_3_0 = q_acc_3_0; + const real_t elMat_3_1 = q_acc_3_1; + const real_t elMat_3_2 = q_acc_3_2; + const real_t elMat_3_3 = q_acc_3_3; + const real_t elMat_3_4 = q_acc_3_4; + const real_t elMat_3_5 = q_acc_3_5; + const real_t elMat_3_6 = q_acc_3_6; + const real_t elMat_3_7 = q_acc_3_7; + const real_t elMat_3_8 = q_acc_3_8; + const real_t elMat_3_9 = q_acc_3_9; + const real_t elMat_3_10 = q_acc_3_10; + const real_t elMat_3_11 = q_acc_3_11; + const real_t elMat_3_12 = q_acc_3_12; + const real_t elMat_3_13 = q_acc_3_13; + const real_t elMat_3_14 = q_acc_3_14; + const real_t elMat_3_15 = q_acc_3_15; + const real_t elMat_3_16 = q_acc_3_16; + const real_t elMat_3_17 = q_acc_3_17; + const real_t elMat_3_18 = q_acc_3_18; + const real_t elMat_3_19 = q_acc_3_19; + const real_t elMat_3_20 = q_acc_3_20; + const real_t elMat_3_21 = q_acc_3_21; + const real_t elMat_3_22 = q_acc_3_22; + const real_t elMat_3_23 = q_acc_3_23; + const real_t elMat_3_24 = q_acc_3_24; + const real_t elMat_3_25 = q_acc_3_25; + const real_t elMat_3_26 = q_acc_3_26; + const real_t elMat_3_27 = q_acc_3_27; + const real_t elMat_3_28 = q_acc_3_28; + const real_t elMat_3_29 = q_acc_3_29; + + std::vector< uint_t > _data_rowIdx( 4 ); + std::vector< uint_t > _data_colIdx( 30 ); + std::vector< real_t > _data_mat( 120 ); + + _data_rowIdx[0] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_rowIdx[1] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[2] = ((uint64_t)(_data_dst[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_rowIdx[3] = ((uint64_t)(_data_dst[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[0] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[1] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[2] = ((uint64_t)(_data_src_vertex_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[3] = ((uint64_t)(_data_src_vertex_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[4] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[5] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[6] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[7] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[8] = ((uint64_t)(_data_src_edge_0[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[9] = ((uint64_t)(_data_src_edge_0[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[10] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[11] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[12] = ((uint64_t)(_data_src_vertex_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[13] = ((uint64_t)(_data_src_vertex_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[14] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[15] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[16] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[17] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[18] = ((uint64_t)(_data_src_edge_1[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[19] = ((uint64_t)(_data_src_edge_1[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[20] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[21] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)*(-ctr_2 + micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[22] = ((uint64_t)(_data_src_vertex_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6)) + 1])); + _data_colIdx[23] = ((uint64_t)(_data_src_vertex_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + (((micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)*(micro_edges_per_macro_edge + 3)) / (6))])); + _data_colIdx[24] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + 4*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[25] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 5*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[26] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge + 1) - ((ctr_1*(ctr_1 + 1)) / (2)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6)) + 1])); + _data_colIdx[27] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + 3*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + _data_colIdx[28] = ((uint64_t)(_data_src_edge_2[ctr_0 + ctr_1*(-ctr_2 + micro_edges_per_macro_edge) - ((ctr_1*(ctr_1 + 1)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge - 1)*(micro_edges_per_macro_edge + 1)) / (6)) + 6*((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge - 1)*(-ctr_2 + micro_edges_per_macro_edge + 1)) / (6))])); + _data_colIdx[29] = ((uint64_t)(_data_src_edge_2[ctr_0 + (ctr_1 + 1)*(-ctr_2 + micro_edges_per_macro_edge + 1) - (((ctr_1 + 1)*(ctr_1 + 2)) / (2)) + ((micro_edges_per_macro_edge*(micro_edges_per_macro_edge + 1)*(micro_edges_per_macro_edge + 2)) / (6)) - (((-ctr_2 + micro_edges_per_macro_edge)*(-ctr_2 + micro_edges_per_macro_edge + 1)*(-ctr_2 + micro_edges_per_macro_edge + 2)) / (6))])); + + /* Apply basis transformation */ + + + + _data_mat[0] = ((real_t)(elMat_0_0)); + _data_mat[1] = ((real_t)(elMat_0_1)); + _data_mat[2] = ((real_t)(elMat_0_2)); + _data_mat[3] = ((real_t)(elMat_0_3)); + _data_mat[4] = ((real_t)(elMat_0_4)); + _data_mat[5] = ((real_t)(elMat_0_5)); + _data_mat[6] = ((real_t)(elMat_0_6)); + _data_mat[7] = ((real_t)(elMat_0_7)); + _data_mat[8] = ((real_t)(elMat_0_8)); + _data_mat[9] = ((real_t)(elMat_0_9)); + _data_mat[10] = ((real_t)(elMat_0_10)); + _data_mat[11] = ((real_t)(elMat_0_11)); + _data_mat[12] = ((real_t)(elMat_0_12)); + _data_mat[13] = ((real_t)(elMat_0_13)); + _data_mat[14] = ((real_t)(elMat_0_14)); + _data_mat[15] = ((real_t)(elMat_0_15)); + _data_mat[16] = ((real_t)(elMat_0_16)); + _data_mat[17] = ((real_t)(elMat_0_17)); + _data_mat[18] = ((real_t)(elMat_0_18)); + _data_mat[19] = ((real_t)(elMat_0_19)); + _data_mat[20] = ((real_t)(elMat_0_20)); + _data_mat[21] = ((real_t)(elMat_0_21)); + _data_mat[22] = ((real_t)(elMat_0_22)); + _data_mat[23] = ((real_t)(elMat_0_23)); + _data_mat[24] = ((real_t)(elMat_0_24)); + _data_mat[25] = ((real_t)(elMat_0_25)); + _data_mat[26] = ((real_t)(elMat_0_26)); + _data_mat[27] = ((real_t)(elMat_0_27)); + _data_mat[28] = ((real_t)(elMat_0_28)); + _data_mat[29] = ((real_t)(elMat_0_29)); + _data_mat[30] = ((real_t)(elMat_1_0)); + _data_mat[31] = ((real_t)(elMat_1_1)); + _data_mat[32] = ((real_t)(elMat_1_2)); + _data_mat[33] = ((real_t)(elMat_1_3)); + _data_mat[34] = ((real_t)(elMat_1_4)); + _data_mat[35] = ((real_t)(elMat_1_5)); + _data_mat[36] = ((real_t)(elMat_1_6)); + _data_mat[37] = ((real_t)(elMat_1_7)); + _data_mat[38] = ((real_t)(elMat_1_8)); + _data_mat[39] = ((real_t)(elMat_1_9)); + _data_mat[40] = ((real_t)(elMat_1_10)); + _data_mat[41] = ((real_t)(elMat_1_11)); + _data_mat[42] = ((real_t)(elMat_1_12)); + _data_mat[43] = ((real_t)(elMat_1_13)); + _data_mat[44] = ((real_t)(elMat_1_14)); + _data_mat[45] = ((real_t)(elMat_1_15)); + _data_mat[46] = ((real_t)(elMat_1_16)); + _data_mat[47] = ((real_t)(elMat_1_17)); + _data_mat[48] = ((real_t)(elMat_1_18)); + _data_mat[49] = ((real_t)(elMat_1_19)); + _data_mat[50] = ((real_t)(elMat_1_20)); + _data_mat[51] = ((real_t)(elMat_1_21)); + _data_mat[52] = ((real_t)(elMat_1_22)); + _data_mat[53] = ((real_t)(elMat_1_23)); + _data_mat[54] = ((real_t)(elMat_1_24)); + _data_mat[55] = ((real_t)(elMat_1_25)); + _data_mat[56] = ((real_t)(elMat_1_26)); + _data_mat[57] = ((real_t)(elMat_1_27)); + _data_mat[58] = ((real_t)(elMat_1_28)); + _data_mat[59] = ((real_t)(elMat_1_29)); + _data_mat[60] = ((real_t)(elMat_2_0)); + _data_mat[61] = ((real_t)(elMat_2_1)); + _data_mat[62] = ((real_t)(elMat_2_2)); + _data_mat[63] = ((real_t)(elMat_2_3)); + _data_mat[64] = ((real_t)(elMat_2_4)); + _data_mat[65] = ((real_t)(elMat_2_5)); + _data_mat[66] = ((real_t)(elMat_2_6)); + _data_mat[67] = ((real_t)(elMat_2_7)); + _data_mat[68] = ((real_t)(elMat_2_8)); + _data_mat[69] = ((real_t)(elMat_2_9)); + _data_mat[70] = ((real_t)(elMat_2_10)); + _data_mat[71] = ((real_t)(elMat_2_11)); + _data_mat[72] = ((real_t)(elMat_2_12)); + _data_mat[73] = ((real_t)(elMat_2_13)); + _data_mat[74] = ((real_t)(elMat_2_14)); + _data_mat[75] = ((real_t)(elMat_2_15)); + _data_mat[76] = ((real_t)(elMat_2_16)); + _data_mat[77] = ((real_t)(elMat_2_17)); + _data_mat[78] = ((real_t)(elMat_2_18)); + _data_mat[79] = ((real_t)(elMat_2_19)); + _data_mat[80] = ((real_t)(elMat_2_20)); + _data_mat[81] = ((real_t)(elMat_2_21)); + _data_mat[82] = ((real_t)(elMat_2_22)); + _data_mat[83] = ((real_t)(elMat_2_23)); + _data_mat[84] = ((real_t)(elMat_2_24)); + _data_mat[85] = ((real_t)(elMat_2_25)); + _data_mat[86] = ((real_t)(elMat_2_26)); + _data_mat[87] = ((real_t)(elMat_2_27)); + _data_mat[88] = ((real_t)(elMat_2_28)); + _data_mat[89] = ((real_t)(elMat_2_29)); + _data_mat[90] = ((real_t)(elMat_3_0)); + _data_mat[91] = ((real_t)(elMat_3_1)); + _data_mat[92] = ((real_t)(elMat_3_2)); + _data_mat[93] = ((real_t)(elMat_3_3)); + _data_mat[94] = ((real_t)(elMat_3_4)); + _data_mat[95] = ((real_t)(elMat_3_5)); + _data_mat[96] = ((real_t)(elMat_3_6)); + _data_mat[97] = ((real_t)(elMat_3_7)); + _data_mat[98] = ((real_t)(elMat_3_8)); + _data_mat[99] = ((real_t)(elMat_3_9)); + _data_mat[100] = ((real_t)(elMat_3_10)); + _data_mat[101] = ((real_t)(elMat_3_11)); + _data_mat[102] = ((real_t)(elMat_3_12)); + _data_mat[103] = ((real_t)(elMat_3_13)); + _data_mat[104] = ((real_t)(elMat_3_14)); + _data_mat[105] = ((real_t)(elMat_3_15)); + _data_mat[106] = ((real_t)(elMat_3_16)); + _data_mat[107] = ((real_t)(elMat_3_17)); + _data_mat[108] = ((real_t)(elMat_3_18)); + _data_mat[109] = ((real_t)(elMat_3_19)); + _data_mat[110] = ((real_t)(elMat_3_20)); + _data_mat[111] = ((real_t)(elMat_3_21)); + _data_mat[112] = ((real_t)(elMat_3_22)); + _data_mat[113] = ((real_t)(elMat_3_23)); + _data_mat[114] = ((real_t)(elMat_3_24)); + _data_mat[115] = ((real_t)(elMat_3_25)); + _data_mat[116] = ((real_t)(elMat_3_26)); + _data_mat[117] = ((real_t)(elMat_3_27)); + _data_mat[118] = ((real_t)(elMat_3_28)); + _data_mat[119] = ((real_t)(elMat_3_29)); + + + mat->addValues( _data_rowIdx, _data_colIdx, _data_mat ); + } + } + } +} +} // namespace operatorgeneration + +} // namespace hyteg