27 auto tmp = (in.get(C::ecc_add_mem_dst_addr_1_) -
28 in.get(C::ecc_add_mem_sel) * (in.get(C::ecc_add_mem_dst_addr_0_) +
FF(1)));
29 tmp *= scaling_factor;
30 std::get<0>(evals) +=
typename Accumulator::View(tmp);
34 auto tmp = (in.get(C::ecc_add_mem_dst_addr_2_) -
35 in.get(C::ecc_add_mem_sel) * (in.get(C::ecc_add_mem_dst_addr_0_) +
FF(2)));
36 tmp *= scaling_factor;
37 std::get<1>(evals) +=
typename Accumulator::View(tmp);
42 in.get(C::ecc_add_mem_sel_dst_out_of_range_err) * (
FF(1) - in.get(C::ecc_add_mem_sel_dst_out_of_range_err));
43 tmp *= scaling_factor;
44 std::get<2>(evals) +=
typename Accumulator::View(tmp);
49 in.get(C::ecc_add_mem_sel) * (in.get(C::ecc_add_mem_max_mem_addr) - constants_AVM_HIGHEST_MEM_ADDRESS);
50 tmp *= scaling_factor;
51 std::get<3>(evals) +=
typename Accumulator::View(tmp);
56 in.get(C::ecc_add_mem_sel_p_not_on_curve_err) * (
FF(1) - in.get(C::ecc_add_mem_sel_p_not_on_curve_err));
57 tmp *= scaling_factor;
58 std::get<4>(evals) +=
typename Accumulator::View(tmp);
63 in.get(C::ecc_add_mem_sel_q_not_on_curve_err) * (
FF(1) - in.get(C::ecc_add_mem_sel_q_not_on_curve_err));
64 tmp *= scaling_factor;
65 std::get<5>(evals) +=
typename Accumulator::View(tmp);
69 auto tmp = (in.get(C::ecc_add_mem_p_is_on_curve_eqn) - in.get(C::ecc_add_mem_sel) *
70 (ecc_add_mem_P_Y2 - (ecc_add_mem_P_X3 -
FF(17))) *
71 (
FF(1) - in.get(C::ecc_add_mem_p_is_inf)));
72 tmp *= scaling_factor;
73 std::get<6>(evals) +=
typename Accumulator::View(tmp);
77 auto tmp = in.get(C::ecc_add_mem_sel) * (in.get(C::ecc_add_mem_p_is_on_curve_eqn) *
78 ((
FF(1) - in.get(C::ecc_add_mem_sel_p_not_on_curve_err)) *
79 (
FF(1) - in.get(C::ecc_add_mem_p_is_on_curve_eqn_inv)) +
80 in.get(C::ecc_add_mem_p_is_on_curve_eqn_inv)) -
81 in.get(C::ecc_add_mem_sel_p_not_on_curve_err));
82 tmp *= scaling_factor;
83 std::get<7>(evals) +=
typename Accumulator::View(tmp);
87 auto tmp = (in.get(C::ecc_add_mem_q_is_on_curve_eqn) - in.get(C::ecc_add_mem_sel) *
88 (ecc_add_mem_Q_Y2 - (ecc_add_mem_Q_X3 -
FF(17))) *
89 (
FF(1) - in.get(C::ecc_add_mem_q_is_inf)));
90 tmp *= scaling_factor;
91 std::get<8>(evals) +=
typename Accumulator::View(tmp);
95 auto tmp = in.get(C::ecc_add_mem_sel) * (in.get(C::ecc_add_mem_q_is_on_curve_eqn) *
96 ((
FF(1) - in.get(C::ecc_add_mem_sel_q_not_on_curve_err)) *
97 (
FF(1) - in.get(C::ecc_add_mem_q_is_on_curve_eqn_inv)) +
98 in.get(C::ecc_add_mem_q_is_on_curve_eqn_inv)) -
99 in.get(C::ecc_add_mem_sel_q_not_on_curve_err));
100 tmp *= scaling_factor;
101 std::get<9>(evals) +=
typename Accumulator::View(tmp);
105 auto tmp = (in.get(C::ecc_add_mem_err) - (
FF(1) - (
FF(1) - in.get(C::ecc_add_mem_sel_dst_out_of_range_err)) *
106 (
FF(1) - in.get(C::ecc_add_mem_sel_p_not_on_curve_err)) *
107 (
FF(1) - in.get(C::ecc_add_mem_sel_q_not_on_curve_err))));
108 tmp *= scaling_factor;
113 auto tmp = (in.get(C::ecc_add_mem_sel_should_exec) -
114 in.get(C::ecc_add_mem_sel) * (
FF(1) - in.get(C::ecc_add_mem_err)));
115 tmp *= scaling_factor;