#ifndef GUARD_32613626342183eafa360dc1f0f18924
#define GUARD_32613626342183eafa360dc1f0f18924

#define USING_DUNE_PYTHON 1
#include <config.h>
#include <dune/alugrid/dgf.hh>
#include <dune/alugrid/grid.hh>
#include <dune/fem/gridpart/adaptiveleafgridpart.hh>
#include <dune/fem/gridpart/filter/simple.hh>
#include <dune/fem/gridpart/filteredgridpart.hh>
#include <dune/fempy/py/gridview.hh>
#include <dune/python/grid/gridview.hh>
#include <dune/python/grid/hierarchical.hh>
#include <dune/fem/function/localfunction/bindable.hh>
#include <dune/fem/common/intersectionside.hh>
#include <dune/python/pybind11/pybind11.h>
#include <dune/python/pybind11/extensions.h>
#include <dune/fempy/py/grid/gridpart.hh>
#include <dune/common/exceptions.hh>
#include <dune/fempy/py/ufllocalfunction.hh>

namespace UFLLocalFunctions_32613626342183eafa360dc1f0f18924
{

  // UFLLocalFunction
// ----------------

template< class GridPart >
struct UFLLocalFunction
  : public Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>>
{
  typedef GridPart GridPartType;
  typedef typename GridPartType::GridViewType GridView;
  typedef typename GridView::ctype ctype;
  typedef Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>> BaseType;
  typedef Dune::Fem::GridFunctionSpace<GridPartType,Dune::Dim<2>> FunctionSpaceType;
  typedef typename GridPartType::template Codim< 0 >::EntityType EntityType;
  typedef typename GridPartType::IntersectionType IntersectionType;
  typedef typename EntityType::Geometry Geometry;
  typedef typename Geometry::GlobalCoordinate GlobalCoordinateType;
  typedef Dune::Fem::IntersectionSide Side;
  typedef std::tuple<> ConstantTupleType;
  typedef std::tuple<> CoefficientTupleType;
  static constexpr bool gridPartValid = true;
  template< std::size_t i >
  using CoefficientType = std::tuple_element_t< i, CoefficientTupleType >;
  template< std::size_t i >
  using ConstantType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
  using BaseType::entity;
  using BaseType::geometry;

  UFLLocalFunction ( const GridPartType &gridPart, const std::string &name, int order, const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
    : BaseType(gridPart,name,order)
  {}

  void bind ( const IntersectionType &intersection, Side side )
  {
    BaseType::bind(intersection, side);
  }

  void bind ( const EntityType &entity )
  {
    BaseType::bind(entity);
  }

  void unbind ()
  {
    BaseType::unbind();
  }

  template< class Point >
  void evaluate ( const Point &x, typename FunctionSpaceType::RangeType &result ) const
  {
    using std::max;
    using std::min;
    using std::sqrt;
    GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
    const auto tmp1 = -0.4 + tmp0[ 0 ];
    const auto tmp2 = tmp0[ 1 ] * tmp0[ 1 ];
    const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
    const auto tmp4 = tmp3 + tmp2;
    const auto tmp5 = 1e-10 + tmp4;
    const auto tmp6 = std::sqrt( tmp5 );
    const auto tmp7 = -1.4 + tmp6;
    const auto tmp8 = std::min( tmp7, tmp1 );
    const auto tmp9 = -1 * tmp0[ 0 ];
    const auto tmp10 = -0.4 + tmp9;
    const auto tmp11 = std::min( tmp7, tmp10 );
    const auto tmp12 = std::max( tmp11, tmp8 );
    const auto tmp13 = 1 + tmp0[ 0 ];
    const auto tmp14 = tmp13 * tmp13;
    const auto tmp15 = tmp2 + tmp14;
    const auto tmp16 = 1e-10 + tmp15;
    const auto tmp17 = std::sqrt( tmp16 );
    const auto tmp18 = -0.5 + tmp17;
    const auto tmp19 = -1 + tmp0[ 0 ];
    const auto tmp20 = tmp19 * tmp19;
    const auto tmp21 = tmp2 + tmp20;
    const auto tmp22 = 1e-10 + tmp21;
    const auto tmp23 = std::sqrt( tmp22 );
    const auto tmp24 = -0.5 + tmp23;
    const auto tmp25 = 0.8 + tmp0[ 1 ];
    const auto tmp26 = tmp25 * tmp25;
    const auto tmp27 = tmp3 + tmp26;
    const auto tmp28 = 1e-10 + tmp27;
    const auto tmp29 = std::sqrt( tmp28 );
    const auto tmp30 = -0.5 + tmp29;
    const auto tmp31 = -1 * tmp30;
    const auto tmp32 = -0.8 + tmp0[ 1 ];
    const auto tmp33 = tmp32 * tmp32;
    const auto tmp34 = tmp3 + tmp33;
    const auto tmp35 = 1e-10 + tmp34;
    const auto tmp36 = std::sqrt( tmp35 );
    const auto tmp37 = -0.5 + tmp36;
    const auto tmp38 = -1 * tmp37;
    const auto tmp39 = -1 + tmp6;
    const auto tmp40 = std::max( tmp39, tmp38 );
    const auto tmp41 = std::max( tmp40, tmp31 );
    const auto tmp42 = std::min( tmp41, tmp24 );
    const auto tmp43 = std::min( tmp42, tmp18 );
    const auto tmp44 = std::max( tmp43, tmp12 );
    const auto tmp45 = 2 * tmp6;
    const auto tmp46 = tmp0[ 0 ] + tmp0[ 0 ];
    const auto tmp47 = tmp46 / tmp45;
    const auto tmp48 = tmp47 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp49 = 2 * tmp36;
    const auto tmp50 = tmp46 / tmp49;
    const auto tmp51 = -1 * tmp50;
    const auto tmp52 = -1 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp53 = 1.0 + tmp52;
    const auto tmp54 = tmp53 * tmp51;
    const auto tmp55 = tmp54 + tmp48;
    const auto tmp56 = tmp55 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp57 = 2 * tmp29;
    const auto tmp58 = tmp46 / tmp57;
    const auto tmp59 = -1 * tmp58;
    const auto tmp60 = -1 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp61 = 1.0 + tmp60;
    const auto tmp62 = tmp61 * tmp59;
    const auto tmp63 = tmp62 + tmp56;
    const auto tmp64 = tmp63 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp65 = 2 * tmp23;
    const auto tmp66 = tmp19 + tmp19;
    const auto tmp67 = tmp66 / tmp65;
    const auto tmp68 = -1 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp69 = 1.0 + tmp68;
    const auto tmp70 = tmp69 * tmp67;
    const auto tmp71 = tmp70 + tmp64;
    const auto tmp72 = tmp71 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp73 = 2 * tmp17;
    const auto tmp74 = tmp13 + tmp13;
    const auto tmp75 = tmp74 / tmp73;
    const auto tmp76 = -1 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp77 = 1.0 + tmp76;
    const auto tmp78 = tmp77 * tmp75;
    const auto tmp79 = tmp78 + tmp72;
    const auto tmp80 = tmp79 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp81 = -1 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp82 = 1.0 + tmp81;
    const auto tmp83 = tmp47 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp84 = -1 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp85 = 1.0 + tmp84;
    const auto tmp86 = -1 * tmp85;
    const auto tmp87 = tmp86 + tmp83;
    const auto tmp88 = tmp87 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp89 = -1 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp90 = 1.0 + tmp89;
    const auto tmp91 = tmp47 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp92 = -1 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp93 = 1.0 + tmp92;
    const auto tmp94 = tmp93 + tmp91;
    const auto tmp95 = tmp94 * tmp90;
    const auto tmp96 = tmp95 + tmp88;
    const auto tmp97 = tmp96 * tmp82;
    const auto tmp98 = tmp97 + tmp80;
    const auto tmp99 = -1 * tmp98;
    const auto tmp100 = tmp99 * tmp44;
    const auto tmp101 = tmp0[ 0 ] + tmp100;
    const auto tmp102 = tmp0[ 1 ] + tmp0[ 1 ];
    const auto tmp103 = tmp102 / tmp45;
    const auto tmp104 = tmp103 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp105 = tmp32 + tmp32;
    const auto tmp106 = tmp105 / tmp49;
    const auto tmp107 = -1 * tmp106;
    const auto tmp108 = tmp53 * tmp107;
    const auto tmp109 = tmp108 + tmp104;
    const auto tmp110 = tmp109 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp111 = tmp25 + tmp25;
    const auto tmp112 = tmp111 / tmp57;
    const auto tmp113 = -1 * tmp112;
    const auto tmp114 = tmp61 * tmp113;
    const auto tmp115 = tmp114 + tmp110;
    const auto tmp116 = tmp115 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp117 = tmp102 / tmp65;
    const auto tmp118 = tmp69 * tmp117;
    const auto tmp119 = tmp118 + tmp116;
    const auto tmp120 = tmp119 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp121 = tmp102 / tmp73;
    const auto tmp122 = tmp77 * tmp121;
    const auto tmp123 = tmp122 + tmp120;
    const auto tmp124 = tmp123 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp125 = tmp103 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp126 = tmp125 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp127 = tmp103 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp128 = tmp90 * tmp127;
    const auto tmp129 = tmp128 + tmp126;
    const auto tmp130 = tmp129 * tmp82;
    const auto tmp131 = tmp130 + tmp124;
    const auto tmp132 = -1 * tmp131;
    const auto tmp133 = tmp132 * tmp44;
    const auto tmp134 = tmp0[ 1 ] + tmp133;
    result[ 0 ] = tmp101;
    result[ 1 ] = tmp134;
  }

  template< class Point >
  void jacobian ( const Point &x, typename FunctionSpaceType::JacobianRangeType &result ) const
  {
    using std::max;
    using std::min;
    using std::sqrt;
    GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
    const auto tmp1 = -0.4 + tmp0[ 0 ];
    const auto tmp2 = tmp0[ 1 ] * tmp0[ 1 ];
    const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
    const auto tmp4 = tmp3 + tmp2;
    const auto tmp5 = 1e-10 + tmp4;
    const auto tmp6 = std::sqrt( tmp5 );
    const auto tmp7 = -1.4 + tmp6;
    const auto tmp8 = std::min( tmp7, tmp1 );
    const auto tmp9 = -1 * tmp0[ 0 ];
    const auto tmp10 = -0.4 + tmp9;
    const auto tmp11 = std::min( tmp7, tmp10 );
    const auto tmp12 = std::max( tmp11, tmp8 );
    const auto tmp13 = 1 + tmp0[ 0 ];
    const auto tmp14 = tmp13 * tmp13;
    const auto tmp15 = tmp2 + tmp14;
    const auto tmp16 = 1e-10 + tmp15;
    const auto tmp17 = std::sqrt( tmp16 );
    const auto tmp18 = -0.5 + tmp17;
    const auto tmp19 = -1 + tmp0[ 0 ];
    const auto tmp20 = tmp19 * tmp19;
    const auto tmp21 = tmp2 + tmp20;
    const auto tmp22 = 1e-10 + tmp21;
    const auto tmp23 = std::sqrt( tmp22 );
    const auto tmp24 = -0.5 + tmp23;
    const auto tmp25 = 0.8 + tmp0[ 1 ];
    const auto tmp26 = tmp25 * tmp25;
    const auto tmp27 = tmp3 + tmp26;
    const auto tmp28 = 1e-10 + tmp27;
    const auto tmp29 = std::sqrt( tmp28 );
    const auto tmp30 = -0.5 + tmp29;
    const auto tmp31 = -1 * tmp30;
    const auto tmp32 = -0.8 + tmp0[ 1 ];
    const auto tmp33 = tmp32 * tmp32;
    const auto tmp34 = tmp3 + tmp33;
    const auto tmp35 = 1e-10 + tmp34;
    const auto tmp36 = std::sqrt( tmp35 );
    const auto tmp37 = -0.5 + tmp36;
    const auto tmp38 = -1 * tmp37;
    const auto tmp39 = -1 + tmp6;
    const auto tmp40 = std::max( tmp39, tmp38 );
    const auto tmp41 = std::max( tmp40, tmp31 );
    const auto tmp42 = std::min( tmp41, tmp24 );
    const auto tmp43 = std::min( tmp42, tmp18 );
    const auto tmp44 = std::max( tmp43, tmp12 );
    const auto tmp45 = 2 * tmp6;
    const auto tmp46 = tmp0[ 0 ] + tmp0[ 0 ];
    const auto tmp47 = tmp46 / tmp45;
    const auto tmp48 = 2 * tmp47;
    const auto tmp49 = tmp48 * tmp47;
    const auto tmp50 = -1 * tmp49;
    const auto tmp51 = 2 + tmp50;
    const auto tmp52 = tmp51 / tmp45;
    const auto tmp53 = tmp52 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp54 = 2 * tmp36;
    const auto tmp55 = tmp46 / tmp54;
    const auto tmp56 = 2 * tmp55;
    const auto tmp57 = tmp56 * tmp55;
    const auto tmp58 = -1 * tmp57;
    const auto tmp59 = 2 + tmp58;
    const auto tmp60 = tmp59 / tmp54;
    const auto tmp61 = -1 * tmp60;
    const auto tmp62 = -1 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp63 = 1.0 + tmp62;
    const auto tmp64 = tmp63 * tmp61;
    const auto tmp65 = tmp64 + tmp53;
    const auto tmp66 = tmp65 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp67 = 2 * tmp29;
    const auto tmp68 = tmp46 / tmp67;
    const auto tmp69 = 2 * tmp68;
    const auto tmp70 = tmp69 * tmp68;
    const auto tmp71 = -1 * tmp70;
    const auto tmp72 = 2 + tmp71;
    const auto tmp73 = tmp72 / tmp67;
    const auto tmp74 = -1 * tmp73;
    const auto tmp75 = -1 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp76 = 1.0 + tmp75;
    const auto tmp77 = tmp76 * tmp74;
    const auto tmp78 = tmp77 + tmp66;
    const auto tmp79 = tmp78 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp80 = 2 * tmp23;
    const auto tmp81 = tmp19 + tmp19;
    const auto tmp82 = tmp81 / tmp80;
    const auto tmp83 = 2 * tmp82;
    const auto tmp84 = tmp83 * tmp82;
    const auto tmp85 = -1 * tmp84;
    const auto tmp86 = 2 + tmp85;
    const auto tmp87 = tmp86 / tmp80;
    const auto tmp88 = -1 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp89 = 1.0 + tmp88;
    const auto tmp90 = tmp89 * tmp87;
    const auto tmp91 = tmp90 + tmp79;
    const auto tmp92 = tmp91 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp93 = 2 * tmp17;
    const auto tmp94 = tmp13 + tmp13;
    const auto tmp95 = tmp94 / tmp93;
    const auto tmp96 = 2 * tmp95;
    const auto tmp97 = tmp96 * tmp95;
    const auto tmp98 = -1 * tmp97;
    const auto tmp99 = 2 + tmp98;
    const auto tmp100 = tmp99 / tmp93;
    const auto tmp101 = -1 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp102 = 1.0 + tmp101;
    const auto tmp103 = tmp102 * tmp100;
    const auto tmp104 = tmp103 + tmp92;
    const auto tmp105 = tmp104 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp106 = -1 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp107 = 1.0 + tmp106;
    const auto tmp108 = tmp52 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp109 = tmp108 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp110 = tmp52 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp111 = -1 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp112 = 1.0 + tmp111;
    const auto tmp113 = tmp112 * tmp110;
    const auto tmp114 = tmp113 + tmp109;
    const auto tmp115 = tmp114 * tmp107;
    const auto tmp116 = tmp115 + tmp105;
    const auto tmp117 = -1 * tmp116;
    const auto tmp118 = tmp117 * tmp44;
    const auto tmp119 = tmp47 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp120 = -1 * tmp55;
    const auto tmp121 = tmp63 * tmp120;
    const auto tmp122 = tmp121 + tmp119;
    const auto tmp123 = tmp122 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp124 = -1 * tmp68;
    const auto tmp125 = tmp76 * tmp124;
    const auto tmp126 = tmp125 + tmp123;
    const auto tmp127 = tmp126 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp128 = tmp89 * tmp82;
    const auto tmp129 = tmp128 + tmp127;
    const auto tmp130 = tmp129 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp131 = tmp102 * tmp95;
    const auto tmp132 = tmp131 + tmp130;
    const auto tmp133 = tmp132 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp134 = tmp47 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp135 = -1 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp136 = 1.0 + tmp135;
    const auto tmp137 = -1 * tmp136;
    const auto tmp138 = tmp137 + tmp134;
    const auto tmp139 = tmp138 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp140 = tmp47 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp141 = -1 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp142 = 1.0 + tmp141;
    const auto tmp143 = tmp142 + tmp140;
    const auto tmp144 = tmp143 * tmp112;
    const auto tmp145 = tmp144 + tmp139;
    const auto tmp146 = tmp145 * tmp107;
    const auto tmp147 = tmp146 + tmp133;
    const auto tmp148 = -1 * tmp147;
    const auto tmp149 = tmp147 * tmp148;
    const auto tmp150 = tmp149 + tmp118;
    const auto tmp151 = 1 + tmp150;
    const auto tmp152 = tmp0[ 1 ] + tmp0[ 1 ];
    const auto tmp153 = tmp152 / tmp45;
    const auto tmp154 = 2 * tmp153;
    const auto tmp155 = tmp154 * tmp47;
    const auto tmp156 = -1 * tmp155;
    const auto tmp157 = tmp156 / tmp45;
    const auto tmp158 = tmp157 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp159 = tmp32 + tmp32;
    const auto tmp160 = tmp159 / tmp54;
    const auto tmp161 = 2 * tmp160;
    const auto tmp162 = tmp161 * tmp55;
    const auto tmp163 = -1 * tmp162;
    const auto tmp164 = tmp163 / tmp54;
    const auto tmp165 = -1 * tmp164;
    const auto tmp166 = tmp63 * tmp165;
    const auto tmp167 = tmp166 + tmp158;
    const auto tmp168 = tmp167 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp169 = tmp25 + tmp25;
    const auto tmp170 = tmp169 / tmp67;
    const auto tmp171 = 2 * tmp170;
    const auto tmp172 = tmp171 * tmp68;
    const auto tmp173 = -1 * tmp172;
    const auto tmp174 = tmp173 / tmp67;
    const auto tmp175 = -1 * tmp174;
    const auto tmp176 = tmp76 * tmp175;
    const auto tmp177 = tmp176 + tmp168;
    const auto tmp178 = tmp177 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp179 = tmp152 / tmp80;
    const auto tmp180 = 2 * tmp179;
    const auto tmp181 = tmp180 * tmp82;
    const auto tmp182 = -1 * tmp181;
    const auto tmp183 = tmp182 / tmp80;
    const auto tmp184 = tmp89 * tmp183;
    const auto tmp185 = tmp184 + tmp178;
    const auto tmp186 = tmp185 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp187 = tmp152 / tmp93;
    const auto tmp188 = 2 * tmp187;
    const auto tmp189 = tmp188 * tmp95;
    const auto tmp190 = -1 * tmp189;
    const auto tmp191 = tmp190 / tmp93;
    const auto tmp192 = tmp102 * tmp191;
    const auto tmp193 = tmp192 + tmp186;
    const auto tmp194 = tmp193 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp195 = tmp157 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp196 = tmp195 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp197 = tmp157 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp198 = tmp112 * tmp197;
    const auto tmp199 = tmp198 + tmp196;
    const auto tmp200 = tmp199 * tmp107;
    const auto tmp201 = tmp200 + tmp194;
    const auto tmp202 = -1 * tmp201;
    const auto tmp203 = tmp202 * tmp44;
    const auto tmp204 = tmp153 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp205 = -1 * tmp160;
    const auto tmp206 = tmp63 * tmp205;
    const auto tmp207 = tmp206 + tmp204;
    const auto tmp208 = tmp207 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp209 = -1 * tmp170;
    const auto tmp210 = tmp76 * tmp209;
    const auto tmp211 = tmp210 + tmp208;
    const auto tmp212 = tmp211 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp213 = tmp89 * tmp179;
    const auto tmp214 = tmp213 + tmp212;
    const auto tmp215 = tmp214 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp216 = tmp102 * tmp187;
    const auto tmp217 = tmp216 + tmp215;
    const auto tmp218 = tmp217 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp219 = tmp153 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp220 = tmp219 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp221 = tmp153 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp222 = tmp112 * tmp221;
    const auto tmp223 = tmp222 + tmp220;
    const auto tmp224 = tmp223 * tmp107;
    const auto tmp225 = tmp224 + tmp218;
    const auto tmp226 = tmp225 * tmp148;
    const auto tmp227 = tmp226 + tmp203;
    const auto tmp228 = tmp48 * tmp153;
    const auto tmp229 = -1 * tmp228;
    const auto tmp230 = tmp229 / tmp45;
    const auto tmp231 = tmp230 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp232 = tmp56 * tmp160;
    const auto tmp233 = -1 * tmp232;
    const auto tmp234 = tmp233 / tmp54;
    const auto tmp235 = -1 * tmp234;
    const auto tmp236 = tmp63 * tmp235;
    const auto tmp237 = tmp236 + tmp231;
    const auto tmp238 = tmp237 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp239 = tmp69 * tmp170;
    const auto tmp240 = -1 * tmp239;
    const auto tmp241 = tmp240 / tmp67;
    const auto tmp242 = -1 * tmp241;
    const auto tmp243 = tmp76 * tmp242;
    const auto tmp244 = tmp243 + tmp238;
    const auto tmp245 = tmp244 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp246 = tmp83 * tmp179;
    const auto tmp247 = -1 * tmp246;
    const auto tmp248 = tmp247 / tmp80;
    const auto tmp249 = tmp89 * tmp248;
    const auto tmp250 = tmp249 + tmp245;
    const auto tmp251 = tmp250 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp252 = tmp96 * tmp187;
    const auto tmp253 = -1 * tmp252;
    const auto tmp254 = tmp253 / tmp93;
    const auto tmp255 = tmp102 * tmp254;
    const auto tmp256 = tmp255 + tmp251;
    const auto tmp257 = tmp256 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp258 = tmp230 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp259 = tmp258 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp260 = tmp230 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp261 = tmp112 * tmp260;
    const auto tmp262 = tmp261 + tmp259;
    const auto tmp263 = tmp262 * tmp107;
    const auto tmp264 = tmp263 + tmp257;
    const auto tmp265 = -1 * tmp264;
    const auto tmp266 = tmp265 * tmp44;
    const auto tmp267 = -1 * tmp225;
    const auto tmp268 = tmp147 * tmp267;
    const auto tmp269 = tmp268 + tmp266;
    const auto tmp270 = tmp154 * tmp153;
    const auto tmp271 = -1 * tmp270;
    const auto tmp272 = 2 + tmp271;
    const auto tmp273 = tmp272 / tmp45;
    const auto tmp274 = tmp273 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp275 = tmp161 * tmp160;
    const auto tmp276 = -1 * tmp275;
    const auto tmp277 = 2 + tmp276;
    const auto tmp278 = tmp277 / tmp54;
    const auto tmp279 = -1 * tmp278;
    const auto tmp280 = tmp63 * tmp279;
    const auto tmp281 = tmp280 + tmp274;
    const auto tmp282 = tmp281 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp283 = tmp171 * tmp170;
    const auto tmp284 = -1 * tmp283;
    const auto tmp285 = 2 + tmp284;
    const auto tmp286 = tmp285 / tmp67;
    const auto tmp287 = -1 * tmp286;
    const auto tmp288 = tmp76 * tmp287;
    const auto tmp289 = tmp288 + tmp282;
    const auto tmp290 = tmp289 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp291 = tmp180 * tmp179;
    const auto tmp292 = -1 * tmp291;
    const auto tmp293 = 2 + tmp292;
    const auto tmp294 = tmp293 / tmp80;
    const auto tmp295 = tmp89 * tmp294;
    const auto tmp296 = tmp295 + tmp290;
    const auto tmp297 = tmp296 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp298 = tmp188 * tmp187;
    const auto tmp299 = -1 * tmp298;
    const auto tmp300 = 2 + tmp299;
    const auto tmp301 = tmp300 / tmp93;
    const auto tmp302 = tmp102 * tmp301;
    const auto tmp303 = tmp302 + tmp297;
    const auto tmp304 = tmp303 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp305 = tmp273 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp306 = tmp305 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp307 = tmp273 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp308 = tmp112 * tmp307;
    const auto tmp309 = tmp308 + tmp306;
    const auto tmp310 = tmp309 * tmp107;
    const auto tmp311 = tmp310 + tmp304;
    const auto tmp312 = -1 * tmp311;
    const auto tmp313 = tmp312 * tmp44;
    const auto tmp314 = tmp225 * tmp267;
    const auto tmp315 = tmp314 + tmp313;
    const auto tmp316 = 1 + tmp315;
    (result[ 0 ])[ 0 ] = tmp151;
    (result[ 0 ])[ 1 ] = tmp227;
    (result[ 1 ])[ 0 ] = tmp269;
    (result[ 1 ])[ 1 ] = tmp316;
  }

  template< class Point >
  void hessian ( const Point &x, typename FunctionSpaceType::HessianRangeType &result ) const
  {
    using std::max;
    using std::min;
    using std::sqrt;
    GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
    const auto tmp1 = -0.4 + tmp0[ 0 ];
    const auto tmp2 = tmp0[ 1 ] * tmp0[ 1 ];
    const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
    const auto tmp4 = tmp3 + tmp2;
    const auto tmp5 = 1e-10 + tmp4;
    const auto tmp6 = std::sqrt( tmp5 );
    const auto tmp7 = -1.4 + tmp6;
    const auto tmp8 = std::min( tmp7, tmp1 );
    const auto tmp9 = -1 * tmp0[ 0 ];
    const auto tmp10 = -0.4 + tmp9;
    const auto tmp11 = std::min( tmp7, tmp10 );
    const auto tmp12 = std::max( tmp11, tmp8 );
    const auto tmp13 = 1 + tmp0[ 0 ];
    const auto tmp14 = tmp13 * tmp13;
    const auto tmp15 = tmp2 + tmp14;
    const auto tmp16 = 1e-10 + tmp15;
    const auto tmp17 = std::sqrt( tmp16 );
    const auto tmp18 = -0.5 + tmp17;
    const auto tmp19 = -1 + tmp0[ 0 ];
    const auto tmp20 = tmp19 * tmp19;
    const auto tmp21 = tmp2 + tmp20;
    const auto tmp22 = 1e-10 + tmp21;
    const auto tmp23 = std::sqrt( tmp22 );
    const auto tmp24 = -0.5 + tmp23;
    const auto tmp25 = 0.8 + tmp0[ 1 ];
    const auto tmp26 = tmp25 * tmp25;
    const auto tmp27 = tmp3 + tmp26;
    const auto tmp28 = 1e-10 + tmp27;
    const auto tmp29 = std::sqrt( tmp28 );
    const auto tmp30 = -0.5 + tmp29;
    const auto tmp31 = -1 * tmp30;
    const auto tmp32 = -0.8 + tmp0[ 1 ];
    const auto tmp33 = tmp32 * tmp32;
    const auto tmp34 = tmp3 + tmp33;
    const auto tmp35 = 1e-10 + tmp34;
    const auto tmp36 = std::sqrt( tmp35 );
    const auto tmp37 = -0.5 + tmp36;
    const auto tmp38 = -1 * tmp37;
    const auto tmp39 = -1 + tmp6;
    const auto tmp40 = std::max( tmp39, tmp38 );
    const auto tmp41 = std::max( tmp40, tmp31 );
    const auto tmp42 = std::min( tmp41, tmp24 );
    const auto tmp43 = std::min( tmp42, tmp18 );
    const auto tmp44 = std::max( tmp43, tmp12 );
    const auto tmp45 = 2 * tmp6;
    const auto tmp46 = tmp0[ 0 ] + tmp0[ 0 ];
    const auto tmp47 = tmp46 / tmp45;
    const auto tmp48 = 2 * tmp47;
    const auto tmp49 = tmp48 * tmp47;
    const auto tmp50 = -1 * tmp49;
    const auto tmp51 = 2 + tmp50;
    const auto tmp52 = tmp51 / tmp45;
    const auto tmp53 = tmp48 * tmp52;
    const auto tmp54 = -1 * tmp53;
    const auto tmp55 = 2 * tmp52;
    const auto tmp56 = tmp55 * tmp47;
    const auto tmp57 = tmp56 + tmp53;
    const auto tmp58 = -1 * tmp57;
    const auto tmp59 = tmp58 + tmp54;
    const auto tmp60 = tmp59 / tmp45;
    const auto tmp61 = tmp60 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp62 = 2 * tmp36;
    const auto tmp63 = tmp46 / tmp62;
    const auto tmp64 = 2 * tmp63;
    const auto tmp65 = tmp64 * tmp63;
    const auto tmp66 = -1 * tmp65;
    const auto tmp67 = 2 + tmp66;
    const auto tmp68 = tmp67 / tmp62;
    const auto tmp69 = tmp64 * tmp68;
    const auto tmp70 = -1 * tmp69;
    const auto tmp71 = 2 * tmp68;
    const auto tmp72 = tmp71 * tmp63;
    const auto tmp73 = tmp72 + tmp69;
    const auto tmp74 = -1 * tmp73;
    const auto tmp75 = tmp74 + tmp70;
    const auto tmp76 = tmp75 / tmp62;
    const auto tmp77 = -1 * tmp76;
    const auto tmp78 = -1 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp79 = 1.0 + tmp78;
    const auto tmp80 = tmp79 * tmp77;
    const auto tmp81 = tmp80 + tmp61;
    const auto tmp82 = tmp81 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp83 = 2 * tmp29;
    const auto tmp84 = tmp46 / tmp83;
    const auto tmp85 = 2 * tmp84;
    const auto tmp86 = tmp85 * tmp84;
    const auto tmp87 = -1 * tmp86;
    const auto tmp88 = 2 + tmp87;
    const auto tmp89 = tmp88 / tmp83;
    const auto tmp90 = tmp85 * tmp89;
    const auto tmp91 = -1 * tmp90;
    const auto tmp92 = 2 * tmp89;
    const auto tmp93 = tmp92 * tmp84;
    const auto tmp94 = tmp93 + tmp90;
    const auto tmp95 = -1 * tmp94;
    const auto tmp96 = tmp95 + tmp91;
    const auto tmp97 = tmp96 / tmp83;
    const auto tmp98 = -1 * tmp97;
    const auto tmp99 = -1 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp100 = 1.0 + tmp99;
    const auto tmp101 = tmp100 * tmp98;
    const auto tmp102 = tmp101 + tmp82;
    const auto tmp103 = tmp102 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp104 = 2 * tmp23;
    const auto tmp105 = tmp19 + tmp19;
    const auto tmp106 = tmp105 / tmp104;
    const auto tmp107 = 2 * tmp106;
    const auto tmp108 = tmp107 * tmp106;
    const auto tmp109 = -1 * tmp108;
    const auto tmp110 = 2 + tmp109;
    const auto tmp111 = tmp110 / tmp104;
    const auto tmp112 = tmp107 * tmp111;
    const auto tmp113 = -1 * tmp112;
    const auto tmp114 = 2 * tmp111;
    const auto tmp115 = tmp114 * tmp106;
    const auto tmp116 = tmp115 + tmp112;
    const auto tmp117 = -1 * tmp116;
    const auto tmp118 = tmp117 + tmp113;
    const auto tmp119 = tmp118 / tmp104;
    const auto tmp120 = -1 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp121 = 1.0 + tmp120;
    const auto tmp122 = tmp121 * tmp119;
    const auto tmp123 = tmp122 + tmp103;
    const auto tmp124 = tmp123 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp125 = 2 * tmp17;
    const auto tmp126 = tmp13 + tmp13;
    const auto tmp127 = tmp126 / tmp125;
    const auto tmp128 = 2 * tmp127;
    const auto tmp129 = tmp128 * tmp127;
    const auto tmp130 = -1 * tmp129;
    const auto tmp131 = 2 + tmp130;
    const auto tmp132 = tmp131 / tmp125;
    const auto tmp133 = tmp128 * tmp132;
    const auto tmp134 = -1 * tmp133;
    const auto tmp135 = 2 * tmp132;
    const auto tmp136 = tmp135 * tmp127;
    const auto tmp137 = tmp136 + tmp133;
    const auto tmp138 = -1 * tmp137;
    const auto tmp139 = tmp138 + tmp134;
    const auto tmp140 = tmp139 / tmp125;
    const auto tmp141 = -1 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp142 = 1.0 + tmp141;
    const auto tmp143 = tmp142 * tmp140;
    const auto tmp144 = tmp143 + tmp124;
    const auto tmp145 = tmp144 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp146 = -1 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp147 = 1.0 + tmp146;
    const auto tmp148 = tmp60 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp149 = tmp148 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp150 = tmp60 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp151 = -1 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp152 = 1.0 + tmp151;
    const auto tmp153 = tmp152 * tmp150;
    const auto tmp154 = tmp153 + tmp149;
    const auto tmp155 = tmp154 * tmp147;
    const auto tmp156 = tmp155 + tmp145;
    const auto tmp157 = -1 * tmp156;
    const auto tmp158 = tmp157 * tmp44;
    const auto tmp159 = tmp52 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp160 = -1 * tmp68;
    const auto tmp161 = tmp79 * tmp160;
    const auto tmp162 = tmp161 + tmp159;
    const auto tmp163 = tmp162 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp164 = -1 * tmp89;
    const auto tmp165 = tmp100 * tmp164;
    const auto tmp166 = tmp165 + tmp163;
    const auto tmp167 = tmp166 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp168 = tmp121 * tmp111;
    const auto tmp169 = tmp168 + tmp167;
    const auto tmp170 = tmp169 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp171 = tmp142 * tmp132;
    const auto tmp172 = tmp171 + tmp170;
    const auto tmp173 = tmp172 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp174 = tmp52 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp175 = tmp174 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp176 = tmp52 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp177 = tmp152 * tmp176;
    const auto tmp178 = tmp177 + tmp175;
    const auto tmp179 = tmp178 * tmp147;
    const auto tmp180 = tmp179 + tmp173;
    const auto tmp181 = -1 * tmp180;
    const auto tmp182 = tmp47 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp183 = -1 * tmp63;
    const auto tmp184 = tmp79 * tmp183;
    const auto tmp185 = tmp184 + tmp182;
    const auto tmp186 = tmp185 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp187 = -1 * tmp84;
    const auto tmp188 = tmp100 * tmp187;
    const auto tmp189 = tmp188 + tmp186;
    const auto tmp190 = tmp189 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp191 = tmp121 * tmp106;
    const auto tmp192 = tmp191 + tmp190;
    const auto tmp193 = tmp192 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp194 = tmp142 * tmp127;
    const auto tmp195 = tmp194 + tmp193;
    const auto tmp196 = tmp195 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp197 = tmp47 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp198 = -1 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp199 = 1.0 + tmp198;
    const auto tmp200 = -1 * tmp199;
    const auto tmp201 = tmp200 + tmp197;
    const auto tmp202 = tmp201 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp203 = tmp47 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp204 = -1 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp205 = 1.0 + tmp204;
    const auto tmp206 = tmp205 + tmp203;
    const auto tmp207 = tmp206 * tmp152;
    const auto tmp208 = tmp207 + tmp202;
    const auto tmp209 = tmp208 * tmp147;
    const auto tmp210 = tmp209 + tmp196;
    const auto tmp211 = tmp210 * tmp181;
    const auto tmp212 = tmp211 + tmp158;
    const auto tmp213 = -1 * tmp210;
    const auto tmp214 = tmp180 * tmp213;
    const auto tmp215 = tmp214 + tmp211;
    const auto tmp216 = tmp215 + tmp212;
    const auto tmp217 = tmp0[ 1 ] + tmp0[ 1 ];
    const auto tmp218 = tmp217 / tmp45;
    const auto tmp219 = 2 * tmp218;
    const auto tmp220 = tmp219 * tmp52;
    const auto tmp221 = -1 * tmp220;
    const auto tmp222 = tmp219 * tmp47;
    const auto tmp223 = -1 * tmp222;
    const auto tmp224 = tmp223 / tmp45;
    const auto tmp225 = tmp48 * tmp224;
    const auto tmp226 = 2 * tmp224;
    const auto tmp227 = tmp226 * tmp47;
    const auto tmp228 = tmp227 + tmp225;
    const auto tmp229 = -1 * tmp228;
    const auto tmp230 = tmp229 + tmp221;
    const auto tmp231 = tmp230 / tmp45;
    const auto tmp232 = tmp231 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp233 = tmp32 + tmp32;
    const auto tmp234 = tmp233 / tmp62;
    const auto tmp235 = 2 * tmp234;
    const auto tmp236 = tmp235 * tmp68;
    const auto tmp237 = -1 * tmp236;
    const auto tmp238 = tmp235 * tmp63;
    const auto tmp239 = -1 * tmp238;
    const auto tmp240 = tmp239 / tmp62;
    const auto tmp241 = tmp64 * tmp240;
    const auto tmp242 = 2 * tmp240;
    const auto tmp243 = tmp242 * tmp63;
    const auto tmp244 = tmp243 + tmp241;
    const auto tmp245 = -1 * tmp244;
    const auto tmp246 = tmp245 + tmp237;
    const auto tmp247 = tmp246 / tmp62;
    const auto tmp248 = -1 * tmp247;
    const auto tmp249 = tmp79 * tmp248;
    const auto tmp250 = tmp249 + tmp232;
    const auto tmp251 = tmp250 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp252 = tmp25 + tmp25;
    const auto tmp253 = tmp252 / tmp83;
    const auto tmp254 = 2 * tmp253;
    const auto tmp255 = tmp254 * tmp89;
    const auto tmp256 = -1 * tmp255;
    const auto tmp257 = tmp254 * tmp84;
    const auto tmp258 = -1 * tmp257;
    const auto tmp259 = tmp258 / tmp83;
    const auto tmp260 = tmp85 * tmp259;
    const auto tmp261 = 2 * tmp259;
    const auto tmp262 = tmp261 * tmp84;
    const auto tmp263 = tmp262 + tmp260;
    const auto tmp264 = -1 * tmp263;
    const auto tmp265 = tmp264 + tmp256;
    const auto tmp266 = tmp265 / tmp83;
    const auto tmp267 = -1 * tmp266;
    const auto tmp268 = tmp100 * tmp267;
    const auto tmp269 = tmp268 + tmp251;
    const auto tmp270 = tmp269 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp271 = tmp217 / tmp104;
    const auto tmp272 = 2 * tmp271;
    const auto tmp273 = tmp272 * tmp111;
    const auto tmp274 = -1 * tmp273;
    const auto tmp275 = tmp272 * tmp106;
    const auto tmp276 = -1 * tmp275;
    const auto tmp277 = tmp276 / tmp104;
    const auto tmp278 = tmp107 * tmp277;
    const auto tmp279 = 2 * tmp277;
    const auto tmp280 = tmp279 * tmp106;
    const auto tmp281 = tmp280 + tmp278;
    const auto tmp282 = -1 * tmp281;
    const auto tmp283 = tmp282 + tmp274;
    const auto tmp284 = tmp283 / tmp104;
    const auto tmp285 = tmp121 * tmp284;
    const auto tmp286 = tmp285 + tmp270;
    const auto tmp287 = tmp286 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp288 = tmp217 / tmp125;
    const auto tmp289 = 2 * tmp288;
    const auto tmp290 = tmp289 * tmp132;
    const auto tmp291 = -1 * tmp290;
    const auto tmp292 = tmp289 * tmp127;
    const auto tmp293 = -1 * tmp292;
    const auto tmp294 = tmp293 / tmp125;
    const auto tmp295 = tmp128 * tmp294;
    const auto tmp296 = 2 * tmp294;
    const auto tmp297 = tmp296 * tmp127;
    const auto tmp298 = tmp297 + tmp295;
    const auto tmp299 = -1 * tmp298;
    const auto tmp300 = tmp299 + tmp291;
    const auto tmp301 = tmp300 / tmp125;
    const auto tmp302 = tmp142 * tmp301;
    const auto tmp303 = tmp302 + tmp287;
    const auto tmp304 = tmp303 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp305 = tmp231 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp306 = tmp305 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp307 = tmp231 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp308 = tmp152 * tmp307;
    const auto tmp309 = tmp308 + tmp306;
    const auto tmp310 = tmp309 * tmp147;
    const auto tmp311 = tmp310 + tmp304;
    const auto tmp312 = -1 * tmp311;
    const auto tmp313 = tmp312 * tmp44;
    const auto tmp314 = tmp218 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp315 = -1 * tmp234;
    const auto tmp316 = tmp79 * tmp315;
    const auto tmp317 = tmp316 + tmp314;
    const auto tmp318 = tmp317 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp319 = -1 * tmp253;
    const auto tmp320 = tmp100 * tmp319;
    const auto tmp321 = tmp320 + tmp318;
    const auto tmp322 = tmp321 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp323 = tmp121 * tmp271;
    const auto tmp324 = tmp323 + tmp322;
    const auto tmp325 = tmp324 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp326 = tmp142 * tmp288;
    const auto tmp327 = tmp326 + tmp325;
    const auto tmp328 = tmp327 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp329 = tmp218 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp330 = tmp329 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp331 = tmp218 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp332 = tmp152 * tmp331;
    const auto tmp333 = tmp332 + tmp330;
    const auto tmp334 = tmp333 * tmp147;
    const auto tmp335 = tmp334 + tmp328;
    const auto tmp336 = tmp335 * tmp181;
    const auto tmp337 = tmp336 + tmp313;
    const auto tmp338 = tmp224 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp339 = -1 * tmp240;
    const auto tmp340 = tmp79 * tmp339;
    const auto tmp341 = tmp340 + tmp338;
    const auto tmp342 = tmp341 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp343 = -1 * tmp259;
    const auto tmp344 = tmp100 * tmp343;
    const auto tmp345 = tmp344 + tmp342;
    const auto tmp346 = tmp345 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp347 = tmp121 * tmp277;
    const auto tmp348 = tmp347 + tmp346;
    const auto tmp349 = tmp348 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp350 = tmp142 * tmp294;
    const auto tmp351 = tmp350 + tmp349;
    const auto tmp352 = tmp351 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp353 = tmp224 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp354 = tmp353 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp355 = tmp224 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp356 = tmp152 * tmp355;
    const auto tmp357 = tmp356 + tmp354;
    const auto tmp358 = tmp357 * tmp147;
    const auto tmp359 = tmp358 + tmp352;
    const auto tmp360 = -1 * tmp359;
    const auto tmp361 = tmp210 * tmp360;
    const auto tmp362 = tmp359 * tmp213;
    const auto tmp363 = tmp362 + tmp361;
    const auto tmp364 = tmp363 + tmp337;
    const auto tmp365 = -1 * tmp225;
    const auto tmp366 = tmp48 * tmp218;
    const auto tmp367 = -1 * tmp366;
    const auto tmp368 = tmp367 / tmp45;
    const auto tmp369 = 2 * tmp368;
    const auto tmp370 = tmp369 * tmp47;
    const auto tmp371 = tmp370 + tmp220;
    const auto tmp372 = -1 * tmp371;
    const auto tmp373 = tmp372 + tmp365;
    const auto tmp374 = tmp373 / tmp45;
    const auto tmp375 = tmp374 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp376 = -1 * tmp241;
    const auto tmp377 = tmp64 * tmp234;
    const auto tmp378 = -1 * tmp377;
    const auto tmp379 = tmp378 / tmp62;
    const auto tmp380 = 2 * tmp379;
    const auto tmp381 = tmp380 * tmp63;
    const auto tmp382 = tmp381 + tmp236;
    const auto tmp383 = -1 * tmp382;
    const auto tmp384 = tmp383 + tmp376;
    const auto tmp385 = tmp384 / tmp62;
    const auto tmp386 = -1 * tmp385;
    const auto tmp387 = tmp79 * tmp386;
    const auto tmp388 = tmp387 + tmp375;
    const auto tmp389 = tmp388 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp390 = -1 * tmp260;
    const auto tmp391 = tmp85 * tmp253;
    const auto tmp392 = -1 * tmp391;
    const auto tmp393 = tmp392 / tmp83;
    const auto tmp394 = 2 * tmp393;
    const auto tmp395 = tmp394 * tmp84;
    const auto tmp396 = tmp395 + tmp255;
    const auto tmp397 = -1 * tmp396;
    const auto tmp398 = tmp397 + tmp390;
    const auto tmp399 = tmp398 / tmp83;
    const auto tmp400 = -1 * tmp399;
    const auto tmp401 = tmp100 * tmp400;
    const auto tmp402 = tmp401 + tmp389;
    const auto tmp403 = tmp402 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp404 = -1 * tmp278;
    const auto tmp405 = tmp107 * tmp271;
    const auto tmp406 = -1 * tmp405;
    const auto tmp407 = tmp406 / tmp104;
    const auto tmp408 = 2 * tmp407;
    const auto tmp409 = tmp408 * tmp106;
    const auto tmp410 = tmp409 + tmp273;
    const auto tmp411 = -1 * tmp410;
    const auto tmp412 = tmp411 + tmp404;
    const auto tmp413 = tmp412 / tmp104;
    const auto tmp414 = tmp121 * tmp413;
    const auto tmp415 = tmp414 + tmp403;
    const auto tmp416 = tmp415 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp417 = -1 * tmp295;
    const auto tmp418 = tmp128 * tmp288;
    const auto tmp419 = -1 * tmp418;
    const auto tmp420 = tmp419 / tmp125;
    const auto tmp421 = 2 * tmp420;
    const auto tmp422 = tmp421 * tmp127;
    const auto tmp423 = tmp422 + tmp290;
    const auto tmp424 = -1 * tmp423;
    const auto tmp425 = tmp424 + tmp417;
    const auto tmp426 = tmp425 / tmp125;
    const auto tmp427 = tmp142 * tmp426;
    const auto tmp428 = tmp427 + tmp416;
    const auto tmp429 = tmp428 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp430 = tmp374 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp431 = tmp430 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp432 = tmp374 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp433 = tmp152 * tmp432;
    const auto tmp434 = tmp433 + tmp431;
    const auto tmp435 = tmp434 * tmp147;
    const auto tmp436 = tmp435 + tmp429;
    const auto tmp437 = -1 * tmp436;
    const auto tmp438 = tmp437 * tmp44;
    const auto tmp439 = tmp361 + tmp438;
    const auto tmp440 = tmp368 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp441 = -1 * tmp379;
    const auto tmp442 = tmp79 * tmp441;
    const auto tmp443 = tmp442 + tmp440;
    const auto tmp444 = tmp443 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp445 = -1 * tmp393;
    const auto tmp446 = tmp100 * tmp445;
    const auto tmp447 = tmp446 + tmp444;
    const auto tmp448 = tmp447 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp449 = tmp121 * tmp407;
    const auto tmp450 = tmp449 + tmp448;
    const auto tmp451 = tmp450 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp452 = tmp142 * tmp420;
    const auto tmp453 = tmp452 + tmp451;
    const auto tmp454 = tmp453 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp455 = tmp368 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp456 = tmp455 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp457 = tmp368 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp458 = tmp152 * tmp457;
    const auto tmp459 = tmp458 + tmp456;
    const auto tmp460 = tmp459 * tmp147;
    const auto tmp461 = tmp460 + tmp454;
    const auto tmp462 = tmp461 * tmp213;
    const auto tmp463 = tmp462 + tmp336;
    const auto tmp464 = tmp463 + tmp439;
    const auto tmp465 = tmp219 * tmp224;
    const auto tmp466 = -1 * tmp465;
    const auto tmp467 = tmp219 * tmp218;
    const auto tmp468 = -1 * tmp467;
    const auto tmp469 = 2 + tmp468;
    const auto tmp470 = tmp469 / tmp45;
    const auto tmp471 = 2 * tmp470;
    const auto tmp472 = tmp471 * tmp47;
    const auto tmp473 = tmp472 + tmp465;
    const auto tmp474 = -1 * tmp473;
    const auto tmp475 = tmp474 + tmp466;
    const auto tmp476 = tmp475 / tmp45;
    const auto tmp477 = tmp476 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp478 = tmp235 * tmp240;
    const auto tmp479 = -1 * tmp478;
    const auto tmp480 = tmp235 * tmp234;
    const auto tmp481 = -1 * tmp480;
    const auto tmp482 = 2 + tmp481;
    const auto tmp483 = tmp482 / tmp62;
    const auto tmp484 = 2 * tmp483;
    const auto tmp485 = tmp484 * tmp63;
    const auto tmp486 = tmp485 + tmp478;
    const auto tmp487 = -1 * tmp486;
    const auto tmp488 = tmp487 + tmp479;
    const auto tmp489 = tmp488 / tmp62;
    const auto tmp490 = -1 * tmp489;
    const auto tmp491 = tmp79 * tmp490;
    const auto tmp492 = tmp491 + tmp477;
    const auto tmp493 = tmp492 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp494 = tmp254 * tmp259;
    const auto tmp495 = -1 * tmp494;
    const auto tmp496 = tmp254 * tmp253;
    const auto tmp497 = -1 * tmp496;
    const auto tmp498 = 2 + tmp497;
    const auto tmp499 = tmp498 / tmp83;
    const auto tmp500 = 2 * tmp499;
    const auto tmp501 = tmp500 * tmp84;
    const auto tmp502 = tmp501 + tmp494;
    const auto tmp503 = -1 * tmp502;
    const auto tmp504 = tmp503 + tmp495;
    const auto tmp505 = tmp504 / tmp83;
    const auto tmp506 = -1 * tmp505;
    const auto tmp507 = tmp100 * tmp506;
    const auto tmp508 = tmp507 + tmp493;
    const auto tmp509 = tmp508 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp510 = tmp272 * tmp277;
    const auto tmp511 = -1 * tmp510;
    const auto tmp512 = tmp272 * tmp271;
    const auto tmp513 = -1 * tmp512;
    const auto tmp514 = 2 + tmp513;
    const auto tmp515 = tmp514 / tmp104;
    const auto tmp516 = 2 * tmp515;
    const auto tmp517 = tmp516 * tmp106;
    const auto tmp518 = tmp517 + tmp510;
    const auto tmp519 = -1 * tmp518;
    const auto tmp520 = tmp519 + tmp511;
    const auto tmp521 = tmp520 / tmp104;
    const auto tmp522 = tmp121 * tmp521;
    const auto tmp523 = tmp522 + tmp509;
    const auto tmp524 = tmp523 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp525 = tmp289 * tmp294;
    const auto tmp526 = -1 * tmp525;
    const auto tmp527 = tmp289 * tmp288;
    const auto tmp528 = -1 * tmp527;
    const auto tmp529 = 2 + tmp528;
    const auto tmp530 = tmp529 / tmp125;
    const auto tmp531 = 2 * tmp530;
    const auto tmp532 = tmp531 * tmp127;
    const auto tmp533 = tmp532 + tmp525;
    const auto tmp534 = -1 * tmp533;
    const auto tmp535 = tmp534 + tmp526;
    const auto tmp536 = tmp535 / tmp125;
    const auto tmp537 = tmp142 * tmp536;
    const auto tmp538 = tmp537 + tmp524;
    const auto tmp539 = tmp538 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp540 = tmp476 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp541 = tmp540 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp542 = tmp476 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp543 = tmp152 * tmp542;
    const auto tmp544 = tmp543 + tmp541;
    const auto tmp545 = tmp544 * tmp147;
    const auto tmp546 = tmp545 + tmp539;
    const auto tmp547 = -1 * tmp546;
    const auto tmp548 = tmp547 * tmp44;
    const auto tmp549 = tmp335 * tmp360;
    const auto tmp550 = tmp549 + tmp548;
    const auto tmp551 = tmp470 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp552 = -1 * tmp483;
    const auto tmp553 = tmp79 * tmp552;
    const auto tmp554 = tmp553 + tmp551;
    const auto tmp555 = tmp554 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp556 = -1 * tmp499;
    const auto tmp557 = tmp100 * tmp556;
    const auto tmp558 = tmp557 + tmp555;
    const auto tmp559 = tmp558 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp560 = tmp121 * tmp515;
    const auto tmp561 = tmp560 + tmp559;
    const auto tmp562 = tmp561 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp563 = tmp142 * tmp530;
    const auto tmp564 = tmp563 + tmp562;
    const auto tmp565 = tmp564 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp566 = tmp470 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp567 = tmp566 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp568 = tmp470 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp569 = tmp152 * tmp568;
    const auto tmp570 = tmp569 + tmp567;
    const auto tmp571 = tmp570 * tmp147;
    const auto tmp572 = tmp571 + tmp565;
    const auto tmp573 = tmp572 * tmp213;
    const auto tmp574 = tmp573 + tmp549;
    const auto tmp575 = tmp574 + tmp550;
    const auto tmp576 = tmp48 * tmp368;
    const auto tmp577 = -1 * tmp576;
    const auto tmp578 = tmp55 * tmp218;
    const auto tmp579 = tmp578 + tmp576;
    const auto tmp580 = -1 * tmp579;
    const auto tmp581 = tmp580 + tmp577;
    const auto tmp582 = tmp581 / tmp45;
    const auto tmp583 = tmp582 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp584 = tmp64 * tmp379;
    const auto tmp585 = -1 * tmp584;
    const auto tmp586 = tmp71 * tmp234;
    const auto tmp587 = tmp586 + tmp584;
    const auto tmp588 = -1 * tmp587;
    const auto tmp589 = tmp588 + tmp585;
    const auto tmp590 = tmp589 / tmp62;
    const auto tmp591 = -1 * tmp590;
    const auto tmp592 = tmp79 * tmp591;
    const auto tmp593 = tmp592 + tmp583;
    const auto tmp594 = tmp593 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp595 = tmp85 * tmp393;
    const auto tmp596 = -1 * tmp595;
    const auto tmp597 = tmp92 * tmp253;
    const auto tmp598 = tmp597 + tmp595;
    const auto tmp599 = -1 * tmp598;
    const auto tmp600 = tmp599 + tmp596;
    const auto tmp601 = tmp600 / tmp83;
    const auto tmp602 = -1 * tmp601;
    const auto tmp603 = tmp100 * tmp602;
    const auto tmp604 = tmp603 + tmp594;
    const auto tmp605 = tmp604 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp606 = tmp107 * tmp407;
    const auto tmp607 = -1 * tmp606;
    const auto tmp608 = tmp114 * tmp271;
    const auto tmp609 = tmp608 + tmp606;
    const auto tmp610 = -1 * tmp609;
    const auto tmp611 = tmp610 + tmp607;
    const auto tmp612 = tmp611 / tmp104;
    const auto tmp613 = tmp121 * tmp612;
    const auto tmp614 = tmp613 + tmp605;
    const auto tmp615 = tmp614 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp616 = tmp128 * tmp420;
    const auto tmp617 = -1 * tmp616;
    const auto tmp618 = tmp135 * tmp288;
    const auto tmp619 = tmp618 + tmp616;
    const auto tmp620 = -1 * tmp619;
    const auto tmp621 = tmp620 + tmp617;
    const auto tmp622 = tmp621 / tmp125;
    const auto tmp623 = tmp142 * tmp622;
    const auto tmp624 = tmp623 + tmp615;
    const auto tmp625 = tmp624 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp626 = tmp582 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp627 = tmp626 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp628 = tmp582 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp629 = tmp152 * tmp628;
    const auto tmp630 = tmp629 + tmp627;
    const auto tmp631 = tmp630 * tmp147;
    const auto tmp632 = tmp631 + tmp625;
    const auto tmp633 = -1 * tmp632;
    const auto tmp634 = tmp633 * tmp44;
    const auto tmp635 = -1 * tmp461;
    const auto tmp636 = tmp210 * tmp635;
    const auto tmp637 = tmp636 + tmp634;
    const auto tmp638 = -1 * tmp335;
    const auto tmp639 = tmp180 * tmp638;
    const auto tmp640 = tmp639 + tmp636;
    const auto tmp641 = tmp640 + tmp637;
    const auto tmp642 = tmp219 * tmp368;
    const auto tmp643 = -1 * tmp642;
    const auto tmp644 = tmp48 * tmp470;
    const auto tmp645 = tmp226 * tmp218;
    const auto tmp646 = tmp645 + tmp644;
    const auto tmp647 = -1 * tmp646;
    const auto tmp648 = tmp647 + tmp643;
    const auto tmp649 = tmp648 / tmp45;
    const auto tmp650 = tmp649 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp651 = tmp235 * tmp379;
    const auto tmp652 = -1 * tmp651;
    const auto tmp653 = tmp64 * tmp483;
    const auto tmp654 = tmp242 * tmp234;
    const auto tmp655 = tmp654 + tmp653;
    const auto tmp656 = -1 * tmp655;
    const auto tmp657 = tmp656 + tmp652;
    const auto tmp658 = tmp657 / tmp62;
    const auto tmp659 = -1 * tmp658;
    const auto tmp660 = tmp79 * tmp659;
    const auto tmp661 = tmp660 + tmp650;
    const auto tmp662 = tmp661 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp663 = tmp254 * tmp393;
    const auto tmp664 = -1 * tmp663;
    const auto tmp665 = tmp85 * tmp499;
    const auto tmp666 = tmp261 * tmp253;
    const auto tmp667 = tmp666 + tmp665;
    const auto tmp668 = -1 * tmp667;
    const auto tmp669 = tmp668 + tmp664;
    const auto tmp670 = tmp669 / tmp83;
    const auto tmp671 = -1 * tmp670;
    const auto tmp672 = tmp100 * tmp671;
    const auto tmp673 = tmp672 + tmp662;
    const auto tmp674 = tmp673 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp675 = tmp272 * tmp407;
    const auto tmp676 = -1 * tmp675;
    const auto tmp677 = tmp107 * tmp515;
    const auto tmp678 = tmp279 * tmp271;
    const auto tmp679 = tmp678 + tmp677;
    const auto tmp680 = -1 * tmp679;
    const auto tmp681 = tmp680 + tmp676;
    const auto tmp682 = tmp681 / tmp104;
    const auto tmp683 = tmp121 * tmp682;
    const auto tmp684 = tmp683 + tmp674;
    const auto tmp685 = tmp684 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp686 = tmp289 * tmp420;
    const auto tmp687 = -1 * tmp686;
    const auto tmp688 = tmp128 * tmp530;
    const auto tmp689 = tmp296 * tmp288;
    const auto tmp690 = tmp689 + tmp688;
    const auto tmp691 = -1 * tmp690;
    const auto tmp692 = tmp691 + tmp687;
    const auto tmp693 = tmp692 / tmp125;
    const auto tmp694 = tmp142 * tmp693;
    const auto tmp695 = tmp694 + tmp685;
    const auto tmp696 = tmp695 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp697 = tmp649 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp698 = tmp697 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp699 = tmp649 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp700 = tmp152 * tmp699;
    const auto tmp701 = tmp700 + tmp698;
    const auto tmp702 = tmp701 * tmp147;
    const auto tmp703 = tmp702 + tmp696;
    const auto tmp704 = -1 * tmp703;
    const auto tmp705 = tmp704 * tmp44;
    const auto tmp706 = tmp335 * tmp635;
    const auto tmp707 = tmp706 + tmp705;
    const auto tmp708 = -1 * tmp572;
    const auto tmp709 = tmp210 * tmp708;
    const auto tmp710 = tmp359 * tmp638;
    const auto tmp711 = tmp710 + tmp709;
    const auto tmp712 = tmp711 + tmp707;
    const auto tmp713 = -1 * tmp644;
    const auto tmp714 = tmp369 * tmp218;
    const auto tmp715 = tmp714 + tmp642;
    const auto tmp716 = -1 * tmp715;
    const auto tmp717 = tmp716 + tmp713;
    const auto tmp718 = tmp717 / tmp45;
    const auto tmp719 = tmp718 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp720 = -1 * tmp653;
    const auto tmp721 = tmp380 * tmp234;
    const auto tmp722 = tmp721 + tmp651;
    const auto tmp723 = -1 * tmp722;
    const auto tmp724 = tmp723 + tmp720;
    const auto tmp725 = tmp724 / tmp62;
    const auto tmp726 = -1 * tmp725;
    const auto tmp727 = tmp79 * tmp726;
    const auto tmp728 = tmp727 + tmp719;
    const auto tmp729 = tmp728 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp730 = -1 * tmp665;
    const auto tmp731 = tmp394 * tmp253;
    const auto tmp732 = tmp731 + tmp663;
    const auto tmp733 = -1 * tmp732;
    const auto tmp734 = tmp733 + tmp730;
    const auto tmp735 = tmp734 / tmp83;
    const auto tmp736 = -1 * tmp735;
    const auto tmp737 = tmp100 * tmp736;
    const auto tmp738 = tmp737 + tmp729;
    const auto tmp739 = tmp738 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp740 = -1 * tmp677;
    const auto tmp741 = tmp408 * tmp271;
    const auto tmp742 = tmp741 + tmp675;
    const auto tmp743 = -1 * tmp742;
    const auto tmp744 = tmp743 + tmp740;
    const auto tmp745 = tmp744 / tmp104;
    const auto tmp746 = tmp121 * tmp745;
    const auto tmp747 = tmp746 + tmp739;
    const auto tmp748 = tmp747 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp749 = -1 * tmp688;
    const auto tmp750 = tmp421 * tmp288;
    const auto tmp751 = tmp750 + tmp686;
    const auto tmp752 = -1 * tmp751;
    const auto tmp753 = tmp752 + tmp749;
    const auto tmp754 = tmp753 / tmp125;
    const auto tmp755 = tmp142 * tmp754;
    const auto tmp756 = tmp755 + tmp748;
    const auto tmp757 = tmp756 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp758 = tmp718 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp759 = tmp758 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp760 = tmp718 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp761 = tmp152 * tmp760;
    const auto tmp762 = tmp761 + tmp759;
    const auto tmp763 = tmp762 * tmp147;
    const auto tmp764 = tmp763 + tmp757;
    const auto tmp765 = -1 * tmp764;
    const auto tmp766 = tmp765 * tmp44;
    const auto tmp767 = tmp709 + tmp766;
    const auto tmp768 = tmp461 * tmp638;
    const auto tmp769 = tmp768 + tmp706;
    const auto tmp770 = tmp769 + tmp767;
    const auto tmp771 = tmp219 * tmp470;
    const auto tmp772 = -1 * tmp771;
    const auto tmp773 = tmp471 * tmp218;
    const auto tmp774 = tmp773 + tmp771;
    const auto tmp775 = -1 * tmp774;
    const auto tmp776 = tmp775 + tmp772;
    const auto tmp777 = tmp776 / tmp45;
    const auto tmp778 = tmp777 * (tmp39 > tmp38 ? 1 : 0.0);
    const auto tmp779 = tmp235 * tmp483;
    const auto tmp780 = -1 * tmp779;
    const auto tmp781 = tmp484 * tmp234;
    const auto tmp782 = tmp781 + tmp779;
    const auto tmp783 = -1 * tmp782;
    const auto tmp784 = tmp783 + tmp780;
    const auto tmp785 = tmp784 / tmp62;
    const auto tmp786 = -1 * tmp785;
    const auto tmp787 = tmp79 * tmp786;
    const auto tmp788 = tmp787 + tmp778;
    const auto tmp789 = tmp788 * (tmp40 > tmp31 ? 1 : 0.0);
    const auto tmp790 = tmp254 * tmp499;
    const auto tmp791 = -1 * tmp790;
    const auto tmp792 = tmp500 * tmp253;
    const auto tmp793 = tmp792 + tmp790;
    const auto tmp794 = -1 * tmp793;
    const auto tmp795 = tmp794 + tmp791;
    const auto tmp796 = tmp795 / tmp83;
    const auto tmp797 = -1 * tmp796;
    const auto tmp798 = tmp100 * tmp797;
    const auto tmp799 = tmp798 + tmp789;
    const auto tmp800 = tmp799 * (tmp41 < tmp24 ? 1 : 0.0);
    const auto tmp801 = tmp272 * tmp515;
    const auto tmp802 = -1 * tmp801;
    const auto tmp803 = tmp516 * tmp271;
    const auto tmp804 = tmp803 + tmp801;
    const auto tmp805 = -1 * tmp804;
    const auto tmp806 = tmp805 + tmp802;
    const auto tmp807 = tmp806 / tmp104;
    const auto tmp808 = tmp121 * tmp807;
    const auto tmp809 = tmp808 + tmp800;
    const auto tmp810 = tmp809 * (tmp42 < tmp18 ? 1 : 0.0);
    const auto tmp811 = tmp289 * tmp530;
    const auto tmp812 = -1 * tmp811;
    const auto tmp813 = tmp531 * tmp288;
    const auto tmp814 = tmp813 + tmp811;
    const auto tmp815 = -1 * tmp814;
    const auto tmp816 = tmp815 + tmp812;
    const auto tmp817 = tmp816 / tmp125;
    const auto tmp818 = tmp142 * tmp817;
    const auto tmp819 = tmp818 + tmp810;
    const auto tmp820 = tmp819 * (tmp43 > tmp12 ? 1 : 0.0);
    const auto tmp821 = tmp777 * (tmp7 < tmp10 ? 1 : 0.0);
    const auto tmp822 = tmp821 * (tmp11 > tmp8 ? 1 : 0.0);
    const auto tmp823 = tmp777 * (tmp7 < tmp1 ? 1 : 0.0);
    const auto tmp824 = tmp152 * tmp823;
    const auto tmp825 = tmp824 + tmp822;
    const auto tmp826 = tmp825 * tmp147;
    const auto tmp827 = tmp826 + tmp820;
    const auto tmp828 = -1 * tmp827;
    const auto tmp829 = tmp828 * tmp44;
    const auto tmp830 = tmp335 * tmp708;
    const auto tmp831 = tmp830 + tmp829;
    const auto tmp832 = tmp572 * tmp638;
    const auto tmp833 = tmp832 + tmp830;
    const auto tmp834 = tmp833 + tmp831;
    ((result[ 0 ])[ 0 ])[ 0 ] = tmp216;
    ((result[ 0 ])[ 0 ])[ 1 ] = tmp364;
    ((result[ 0 ])[ 1 ])[ 0 ] = tmp464;
    ((result[ 0 ])[ 1 ])[ 1 ] = tmp575;
    ((result[ 1 ])[ 0 ])[ 0 ] = tmp641;
    ((result[ 1 ])[ 0 ])[ 1 ] = tmp712;
    ((result[ 1 ])[ 1 ])[ 0 ] = tmp770;
    ((result[ 1 ])[ 1 ])[ 1 ] = tmp834;
  }

  template< std::size_t i >
  const ConstantType< i > &constant () const
  {
    return *std::get< i >( constants_ );
  }

  template< std::size_t i >
  ConstantType< i > &constant ()
  {
    return *std::get< i >( constants_ );
  }
  ConstantTupleType constants_;
  std::tuple<  > coefficients_;
};

} // namespace UFLLocalFunctions_32613626342183eafa360dc1f0f18924

PYBIND11_MODULE( localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44, module )
{
  typedef UFLLocalFunctions_32613626342183eafa360dc1f0f18924::UFLLocalFunction< typename Dune::FemPy::GridPart< Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true > > > LocalFunctionType;
  if constexpr( LocalFunctionType::gridPartValid )
  {
      auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_32613626342183eafa360dc1f0f18924::UFLLocalFunction< typename Dune::FemPy::GridPart< Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true > > >"), Dune::Python::IncludeFiles({"python/dune/generated/localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
      Dune::FemPy::registerUFLLocalFunction( module, cls );
      cls.def( pybind11::init( [] ( pybind11::object gridView, const std::string &name, int order ) {return new LocalFunctionType( Dune::FemPy::gridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>(gridView),name,order); } ), pybind11::keep_alive< 1, 2 >() );
      cls.def_property_readonly( "virtualized", [] ( LocalFunctionType& ) -> bool { return true;});
  }
}

#endif
