9template <
typename ContainerOverSubrelations,
typename AllEntities>
11 const AllEntities& in,
13 [[maybe_unused]]
const FF_& scaling_factor)
19 const auto gt_A_LTE_B = (in.get(C::gt_input_b) - in.get(C::gt_input_a));
20 const auto gt_A_GT_B = ((in.get(C::gt_input_a) - in.get(C::gt_input_b)) -
FF(1));
24 auto tmp = in.get(C::gt_sel) * (
FF(1) - in.get(C::gt_sel));
25 tmp *= scaling_factor;
26 std::get<0>(evals) +=
typename Accumulator::View(tmp);
30 auto tmp = in.get(C::gt_res) * (
FF(1) - in.get(C::gt_res));
31 tmp *= scaling_factor;
32 std::get<1>(evals) +=
typename Accumulator::View(tmp);
37 in.get(C::gt_sel) * (((gt_A_GT_B - gt_A_LTE_B) * in.get(C::gt_res) + gt_A_LTE_B) - in.get(C::gt_abs_diff));
38 tmp *= scaling_factor;
39 std::get<2>(evals) +=
typename Accumulator::View(tmp);
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const RelationParameters< FF > &, const FF &scaling_factor)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
#define PROFILE_THIS_NAME(name)
Container for parameters used by the grand product (permutation, lookup) Honk relations.