16 const FF& scaling_factor)
20 const auto accumulate_init = [&]<
size_t subrelation_idx>(
const auto& entity) {
21 if constexpr (
requires {
typename Accumulator::CoefficientAccumulator; }) {
22 using View =
typename Accumulator::CoefficientAccumulator;
23 const auto scaled_lagrange_first = View(in.
lagrange_first) * scaling_factor;
26 using View =
typename Accumulator::View;
27 const auto scaled_lagrange_first = View(in.
lagrange_first) * scaling_factor;
39 accumulate_init.template operator()<Z_PERM_INIT>(in.
z_perm);
45 accumulate_init.template operator()<TRANSCRIPT_ACCUMULATOR_NOT_EMPTY_INIT>(in.transcript_accumulator_not_empty);
57 accumulate_init.template operator()<PRECOMPUTE_SELECT_INIT>(in.precompute_select);
67 accumulate_init.template operator()<TRANSCRIPT_MUL_INIT>(in.transcript_mul);
76 accumulate_init.template operator()<TRANSCRIPT_PC_INIT>(in.transcript_pc);
90 accumulate_init.template operator()<PRECOMPUTE_SCALAR_SUM_INIT>(in.precompute_scalar_sum);
94 accumulate_init.template operator()<PRECOMPUTE_DX_INIT>(in.precompute_dx);
95 accumulate_init.template operator()<PRECOMPUTE_DY_INIT>(in.precompute_dy);
96 accumulate_init.template operator()<PRECOMPUTE_TX_INIT>(in.precompute_tx);
97 accumulate_init.template operator()<PRECOMPUTE_TY_INIT>(in.precompute_ty);
103 accumulate_init.template operator()<MSM_TRANSITION_INIT>(in.msm_transition);
110 accumulate_init.template operator()<MSM_ADD_INIT>(in.msm_add);
111 accumulate_init.template operator()<MSM_DOUBLE_INIT>(in.msm_double);
112 accumulate_init.template operator()<MSM_SKEW_INIT>(in.msm_skew);
118 accumulate_init.template operator()<MSM_ACCUMULATOR_X_INIT>(in.msm_accumulator_x);
119 accumulate_init.template operator()<MSM_ACCUMULATOR_Y_INIT>(in.msm_accumulator_y);
124 accumulate_init.template operator()<MSM_COUNT_INIT>(in.msm_count);
125 accumulate_init.template operator()<MSM_ROUND_INIT>(in.msm_round);
129 accumulate_init.template operator()<MSM_ADD1_INIT>(in.msm_add1);
134 accumulate_init.template operator()<MSM_PC_INIT>(in.msm_pc);
139 accumulate_init.template operator()<TRANSCRIPT_MSM_COUNT_INIT>(in.transcript_msm_count);