diff --git a/barretenberg/cpp/pil/vm2/ecc_mem.pil b/barretenberg/cpp/pil/vm2/ecc_mem.pil index 873c05387d12..1960dd73303e 100644 --- a/barretenberg/cpp/pil/vm2/ecc_mem.pil +++ b/barretenberg/cpp/pil/vm2/ecc_mem.pil @@ -53,6 +53,7 @@ include "gt.pil"; namespace ecc_add_mem; pol commit sel; + sel * (1 - sel) = 0; #[skippable_if] sel = 0; diff --git a/barretenberg/cpp/pil/vm2/to_radix_mem.pil b/barretenberg/cpp/pil/vm2/to_radix_mem.pil index 5b40a3636832..e1ba192a095a 100644 --- a/barretenberg/cpp/pil/vm2/to_radix_mem.pil +++ b/barretenberg/cpp/pil/vm2/to_radix_mem.pil @@ -59,6 +59,7 @@ include "precomputed.pil"; namespace to_radix_mem; pol commit sel; + sel * (1 - sel) = 0; #[skippable_if] sel = 0; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem.hpp index 822b8a7163a2..121cbd6db6bd 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem.hpp @@ -14,7 +14,7 @@ template class ecc_memImpl { public: using FF = FF_; - static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 3, 6, 5, 6, 5, 4, 3 }; + static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 3, 3, 6, 5, 6, 5, 4, 3 }; template inline static bool skip(const AllEntities& in) { @@ -35,11 +35,11 @@ template class ecc_mem : public Relation> { static constexpr const std::string_view NAME = "ecc_mem"; // Subrelation indices constants, to be used in tests. - static constexpr size_t SR_WRITE_INCR_DST_ADDR = 0; - static constexpr size_t SR_P_CURVE_EQN = 5; - static constexpr size_t SR_P_ON_CURVE_CHECK = 6; - static constexpr size_t SR_Q_CURVE_EQN = 7; - static constexpr size_t SR_Q_ON_CURVE_CHECK = 8; + static constexpr size_t SR_WRITE_INCR_DST_ADDR = 1; + static constexpr size_t SR_P_CURVE_EQN = 6; + static constexpr size_t SR_P_ON_CURVE_CHECK = 7; + static constexpr size_t SR_Q_CURVE_EQN = 8; + static constexpr size_t SR_Q_ON_CURVE_CHECK = 9; static std::string get_subrelation_label(size_t index) { diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem_impl.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem_impl.hpp index 386ef5362555..5cf88013bdda 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem_impl.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/ecc_mem_impl.hpp @@ -21,88 +21,94 @@ void ecc_memImpl::accumulate(ContainerOverSubrelations& evals, const auto ecc_add_mem_Q_X3 = in.get(C::ecc_add_mem_q_x) * in.get(C::ecc_add_mem_q_x) * in.get(C::ecc_add_mem_q_x); const auto ecc_add_mem_Q_Y2 = in.get(C::ecc_add_mem_q_y) * in.get(C::ecc_add_mem_q_y); - { // WRITE_INCR_DST_ADDR + { using View = typename std::tuple_element_t<0, ContainerOverSubrelations>::View; + auto tmp = + static_cast(in.get(C::ecc_add_mem_sel)) * (FF(1) - static_cast(in.get(C::ecc_add_mem_sel))); + std::get<0>(evals) += (tmp * scaling_factor); + } + { // WRITE_INCR_DST_ADDR + using View = typename std::tuple_element_t<1, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_dst_addr_1_)) - static_cast(in.get(C::ecc_add_mem_sel)) * (static_cast(in.get(C::ecc_add_mem_dst_addr_0_)) + FF(1))); - std::get<0>(evals) += (tmp * scaling_factor); + std::get<1>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<1, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_dst_addr_2_)) - static_cast(in.get(C::ecc_add_mem_sel)) * (static_cast(in.get(C::ecc_add_mem_dst_addr_0_)) + FF(2))); - std::get<1>(evals) += (tmp * scaling_factor); + std::get<2>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::ecc_add_mem_sel)) * (static_cast(in.get(C::ecc_add_mem_max_mem_addr)) - CView(constants_AVM_HIGHEST_MEM_ADDRESS)); - std::get<2>(evals) += (tmp * scaling_factor); + std::get<3>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::ecc_add_mem_sel_p_not_on_curve_err)) * (FF(1) - static_cast(in.get(C::ecc_add_mem_sel_p_not_on_curve_err))); - std::get<3>(evals) += (tmp * scaling_factor); + std::get<4>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::ecc_add_mem_sel_q_not_on_curve_err)) * (FF(1) - static_cast(in.get(C::ecc_add_mem_sel_q_not_on_curve_err))); - std::get<4>(evals) += (tmp * scaling_factor); + std::get<5>(evals) += (tmp * scaling_factor); } { // P_CURVE_EQN - using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_p_is_on_curve_eqn)) - static_cast(in.get(C::ecc_add_mem_sel)) * (CView(ecc_add_mem_P_Y2) - (CView(ecc_add_mem_P_X3) - FF(17))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_p_is_inf)))); - std::get<5>(evals) += (tmp * scaling_factor); + std::get<6>(evals) += (tmp * scaling_factor); } { // P_ON_CURVE_CHECK - using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::ecc_add_mem_sel)) * (static_cast(in.get(C::ecc_add_mem_p_is_on_curve_eqn)) * ((FF(1) - static_cast(in.get(C::ecc_add_mem_sel_p_not_on_curve_err))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_p_is_on_curve_eqn_inv))) + static_cast(in.get(C::ecc_add_mem_p_is_on_curve_eqn_inv))) - static_cast(in.get(C::ecc_add_mem_sel_p_not_on_curve_err))); - std::get<6>(evals) += (tmp * scaling_factor); + std::get<7>(evals) += (tmp * scaling_factor); } { // Q_CURVE_EQN - using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_q_is_on_curve_eqn)) - static_cast(in.get(C::ecc_add_mem_sel)) * (CView(ecc_add_mem_Q_Y2) - (CView(ecc_add_mem_Q_X3) - FF(17))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_q_is_inf)))); - std::get<7>(evals) += (tmp * scaling_factor); + std::get<8>(evals) += (tmp * scaling_factor); } { // Q_ON_CURVE_CHECK - using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::ecc_add_mem_sel)) * (static_cast(in.get(C::ecc_add_mem_q_is_on_curve_eqn)) * ((FF(1) - static_cast(in.get(C::ecc_add_mem_sel_q_not_on_curve_err))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_q_is_on_curve_eqn_inv))) + static_cast(in.get(C::ecc_add_mem_q_is_on_curve_eqn_inv))) - static_cast(in.get(C::ecc_add_mem_sel_q_not_on_curve_err))); - std::get<8>(evals) += (tmp * scaling_factor); + std::get<9>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_err)) - (FF(1) - (FF(1) - static_cast(in.get(C::ecc_add_mem_sel_dst_out_of_range_err))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_sel_p_not_on_curve_err))) * (FF(1) - static_cast(in.get(C::ecc_add_mem_sel_q_not_on_curve_err))))); - std::get<9>(evals) += (tmp * scaling_factor); + std::get<10>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::ecc_add_mem_sel_should_exec)) - static_cast(in.get(C::ecc_add_mem_sel)) * (FF(1) - static_cast(in.get(C::ecc_add_mem_err)))); - std::get<10>(evals) += (tmp * scaling_factor); + std::get<11>(evals) += (tmp * scaling_factor); } } diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem.hpp index f1e0dd7a83bc..729770becb36 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem.hpp @@ -14,9 +14,9 @@ template class to_radix_memImpl { public: using FF = FF_; - static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 3, - 3, 3, 5, 3, 5, 3, 5, 3, 6, 3, 4, 4, 3, - 3, 4, 4, 4, 4, 4, 4, 7, 4, 4, 3 }; + static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, + 3, 3, 3, 5, 3, 5, 3, 5, 3, 6, 3, 4, 4, + 3, 3, 4, 4, 4, 4, 4, 4, 7, 4, 4, 3 }; template inline static bool skip(const AllEntities& in) { @@ -37,25 +37,25 @@ template class to_radix_mem : public Relation static constexpr const std::string_view NAME = "to_radix_mem"; // Subrelation indices constants, to be used in tests. - static constexpr size_t SR_LAST_HAS_SEL_ON = 2; - static constexpr size_t SR_START_AFTER_LAST = 3; - static constexpr size_t SR_SEL_CONTINUITY = 4; - static constexpr size_t SR_EXEC_CLK_CONTINUITY = 5; - static constexpr size_t SR_SPACE_ID_CONTINUITY = 6; - static constexpr size_t SR_VALUE_CONTNUITY = 7; - static constexpr size_t SR_RADIX_CONTINUITY = 8; - static constexpr size_t SR_IS_OUTPUT_BITS_CONTINUITY = 9; - static constexpr size_t SR_IS_OUTPUT_BITS_IMPLY_RADIX_2 = 15; - static constexpr size_t SR_ZERO_CHECK_NUM_LIMBS = 17; - static constexpr size_t SR_ZERO_CHECK_VALUE = 19; - static constexpr size_t SR_SEL_SHOULD_DECOMPOSE_CONTINUITY = 24; - static constexpr size_t SR_TRUNCATION_ERROR = 27; - static constexpr size_t SR_DECR_NUM_LIMBS = 29; - static constexpr size_t SR_INCR_DST_ADDRESS = 30; - static constexpr size_t SR_LAST_ROW_ERR_COMPUTATION = 31; - static constexpr size_t SR_LAST_ROW_NUM_LIMBS_ZERO = 32; - static constexpr size_t SR_LAST_ROW_VALID_COMPUTATION = 33; - static constexpr size_t SR_SEL_SHOULD_WRITE_MEM_CONTINUITY = 35; + static constexpr size_t SR_LAST_HAS_SEL_ON = 3; + static constexpr size_t SR_START_AFTER_LAST = 4; + static constexpr size_t SR_SEL_CONTINUITY = 5; + static constexpr size_t SR_EXEC_CLK_CONTINUITY = 6; + static constexpr size_t SR_SPACE_ID_CONTINUITY = 7; + static constexpr size_t SR_VALUE_CONTNUITY = 8; + static constexpr size_t SR_RADIX_CONTINUITY = 9; + static constexpr size_t SR_IS_OUTPUT_BITS_CONTINUITY = 10; + static constexpr size_t SR_IS_OUTPUT_BITS_IMPLY_RADIX_2 = 16; + static constexpr size_t SR_ZERO_CHECK_NUM_LIMBS = 18; + static constexpr size_t SR_ZERO_CHECK_VALUE = 20; + static constexpr size_t SR_SEL_SHOULD_DECOMPOSE_CONTINUITY = 25; + static constexpr size_t SR_TRUNCATION_ERROR = 28; + static constexpr size_t SR_DECR_NUM_LIMBS = 30; + static constexpr size_t SR_INCR_DST_ADDRESS = 31; + static constexpr size_t SR_LAST_ROW_ERR_COMPUTATION = 32; + static constexpr size_t SR_LAST_ROW_NUM_LIMBS_ZERO = 33; + static constexpr size_t SR_LAST_ROW_VALID_COMPUTATION = 34; + static constexpr size_t SR_SEL_SHOULD_WRITE_MEM_CONTINUITY = 36; static std::string get_subrelation_label(size_t index) { diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem_impl.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem_impl.hpp index 7efc1e469b12..4558aef110bc 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem_impl.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/to_radix_mem_impl.hpp @@ -28,113 +28,119 @@ void to_radix_memImpl::accumulate(ContainerOverSubrelations& evals, { using View = typename std::tuple_element_t<0, ContainerOverSubrelations>::View; - auto tmp = static_cast(in.get(C::to_radix_mem_start)) * - (FF(1) - static_cast(in.get(C::to_radix_mem_start))); + auto tmp = + static_cast(in.get(C::to_radix_mem_sel)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel))); std::get<0>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<1, ContainerOverSubrelations>::View; + auto tmp = static_cast(in.get(C::to_radix_mem_start)) * + (FF(1) - static_cast(in.get(C::to_radix_mem_start))); + std::get<1>(evals) += (tmp * scaling_factor); + } + { + using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_last)) * (FF(1) - static_cast(in.get(C::to_radix_mem_last))); - std::get<1>(evals) += (tmp * scaling_factor); + std::get<2>(evals) += (tmp * scaling_factor); } { // LAST_HAS_SEL_ON - using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_last)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel))); - std::get<2>(evals) += (tmp * scaling_factor); + std::get<3>(evals) += (tmp * scaling_factor); } { // START_AFTER_LAST - using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_shift)) * (static_cast(in.get(C::to_radix_mem_start_shift)) - CView(to_radix_mem_LATCH_CONDITION)); - std::get<3>(evals) += (tmp * scaling_factor); + std::get<4>(evals) += (tmp * scaling_factor); } { // SEL_CONTINUITY - using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View; auto tmp = (FF(1) - static_cast(in.get(C::precomputed_first_row))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel))) * static_cast(in.get(C::to_radix_mem_sel_shift)); - std::get<4>(evals) += (tmp * scaling_factor); + std::get<5>(evals) += (tmp * scaling_factor); } { // EXEC_CLK_CONTINUITY - using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_execution_clk_shift)) - static_cast(in.get(C::to_radix_mem_execution_clk))); - std::get<5>(evals) += (tmp * scaling_factor); + std::get<6>(evals) += (tmp * scaling_factor); } { // SPACE_ID_CONTINUITY - using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_space_id_shift)) - static_cast(in.get(C::to_radix_mem_space_id))); - std::get<6>(evals) += (tmp * scaling_factor); + std::get<7>(evals) += (tmp * scaling_factor); } { // VALUE_CONTNUITY - using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_value_to_decompose_shift)) - static_cast(in.get(C::to_radix_mem_value_to_decompose))); - std::get<7>(evals) += (tmp * scaling_factor); + std::get<8>(evals) += (tmp * scaling_factor); } { // RADIX_CONTINUITY - using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_radix_shift)) - static_cast(in.get(C::to_radix_mem_radix))); - std::get<8>(evals) += (tmp * scaling_factor); + std::get<9>(evals) += (tmp * scaling_factor); } { // IS_OUTPUT_BITS_CONTINUITY - using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_is_output_bits_shift)) - static_cast(in.get(C::to_radix_mem_is_output_bits))); - std::get<9>(evals) += (tmp * scaling_factor); + std::get<10>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * (static_cast(in.get(C::to_radix_mem_max_mem_size)) - CView(constants_AVM_MEMORY_SIZE)); - std::get<10>(evals) += (tmp * scaling_factor); + std::get<11>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<12, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * ((static_cast(in.get(C::to_radix_mem_write_addr_upper_bound)) - static_cast(in.get(C::to_radix_mem_dst_addr))) - static_cast(in.get(C::to_radix_mem_num_limbs))); - std::get<11>(evals) += (tmp * scaling_factor); + std::get<12>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<12, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<13, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_invalid_bitwise_radix)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_invalid_bitwise_radix))); - std::get<12>(evals) += (tmp * scaling_factor); + std::get<13>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<13, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<14, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * (static_cast(in.get(C::to_radix_mem_two)) - FF(2)); - std::get<13>(evals) += (tmp * scaling_factor); + std::get<14>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<14, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<15, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * (static_cast(in.get(C::to_radix_mem_two_five_six)) - FF(256)); - std::get<14>(evals) += (tmp * scaling_factor); + std::get<15>(evals) += (tmp * scaling_factor); } { // IS_OUTPUT_BITS_IMPLY_RADIX_2 - using View = typename std::tuple_element_t<15, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<16, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * static_cast(in.get(C::to_radix_mem_is_output_bits)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_invalid_bitwise_radix))) * (static_cast(in.get(C::to_radix_mem_radix)) - FF(2)); - std::get<15>(evals) += (tmp * scaling_factor); + std::get<16>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<16, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<17, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero))); - std::get<16>(evals) += (tmp * scaling_factor); + std::get<17>(evals) += (tmp * scaling_factor); } { // ZERO_CHECK_NUM_LIMBS - using View = typename std::tuple_element_t<17, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<18, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * ((static_cast(in.get(C::to_radix_mem_num_limbs)) * (static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) * @@ -142,16 +148,16 @@ void to_radix_memImpl::accumulate(ContainerOverSubrelations& evals, static_cast(in.get(C::to_radix_mem_num_limbs_inv))) - FF(1)) + static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero))); - std::get<17>(evals) += (tmp * scaling_factor); + std::get<18>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<18, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<19, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_value_is_zero)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_value_is_zero))); - std::get<18>(evals) += (tmp * scaling_factor); + std::get<19>(evals) += (tmp * scaling_factor); } { // ZERO_CHECK_VALUE - using View = typename std::tuple_element_t<19, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<20, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * ((static_cast(in.get(C::to_radix_mem_value_to_decompose)) * (static_cast(in.get(C::to_radix_mem_sel_value_is_zero)) * @@ -159,102 +165,102 @@ void to_radix_memImpl::accumulate(ContainerOverSubrelations& evals, static_cast(in.get(C::to_radix_mem_value_inv))) - FF(1)) + static_cast(in.get(C::to_radix_mem_sel_value_is_zero))); - std::get<19>(evals) += (tmp * scaling_factor); + std::get<20>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<20, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<21, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_sel_invalid_num_limbs_err)) - static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_value_is_zero)))); - std::get<20>(evals) += (tmp * scaling_factor); + std::get<21>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<21, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<22, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_input_validation_error)) - (FF(1) - (FF(1) - static_cast(in.get(C::to_radix_mem_sel_dst_out_of_range_err))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_radix_lt_2_err))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_radix_gt_256_err))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_invalid_bitwise_radix))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_invalid_num_limbs_err))))); - std::get<21>(evals) += (tmp * scaling_factor); + std::get<22>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<22, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<23, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_should_decompose)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_should_decompose))); - std::get<22>(evals) += (tmp * scaling_factor); + std::get<23>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<23, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<24, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * ((FF(1) - static_cast(in.get(C::to_radix_mem_input_validation_error))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero))) - static_cast(in.get(C::to_radix_mem_sel_should_decompose))); - std::get<23>(evals) += (tmp * scaling_factor); + std::get<24>(evals) += (tmp * scaling_factor); } { // SEL_SHOULD_DECOMPOSE_CONTINUITY - using View = typename std::tuple_element_t<24, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<25, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_sel_should_decompose_shift)) - static_cast(in.get(C::to_radix_mem_sel_should_decompose))); - std::get<24>(evals) += (tmp * scaling_factor); + std::get<25>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<25, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<26, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_limb_index_to_lookup)) - static_cast(in.get(C::to_radix_mem_sel_should_decompose)) * (static_cast(in.get(C::to_radix_mem_num_limbs)) - FF(1))); - std::get<25>(evals) += (tmp * scaling_factor); + std::get<26>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<26, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<27, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_sel_truncation_error)) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_truncation_error))); - std::get<26>(evals) += (tmp * scaling_factor); + std::get<27>(evals) += (tmp * scaling_factor); } { // TRUNCATION_ERROR - using View = typename std::tuple_element_t<27, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<28, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_sel_truncation_error)) - static_cast(in.get(C::to_radix_mem_start)) * static_cast(in.get(C::to_radix_mem_sel_should_decompose)) * (FF(1) - static_cast(in.get(C::to_radix_mem_value_found)))); - std::get<27>(evals) += (tmp * scaling_factor); + std::get<28>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<28, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<29, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_err)) - static_cast(in.get(C::to_radix_mem_start)) * (FF(1) - (FF(1) - static_cast(in.get(C::to_radix_mem_input_validation_error))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_truncation_error))))); - std::get<28>(evals) += (tmp * scaling_factor); + std::get<29>(evals) += (tmp * scaling_factor); } { // DECR_NUM_LIMBS - using View = typename std::tuple_element_t<29, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<30, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_num_limbs_shift)) - (static_cast(in.get(C::to_radix_mem_num_limbs)) - FF(1))); - std::get<29>(evals) += (tmp * scaling_factor); + std::get<30>(evals) += (tmp * scaling_factor); } { // INCR_DST_ADDRESS - using View = typename std::tuple_element_t<30, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<31, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_dst_addr_shift)) - (static_cast(in.get(C::to_radix_mem_dst_addr)) + FF(1))); - std::get<30>(evals) += (tmp * scaling_factor); + std::get<31>(evals) += (tmp * scaling_factor); } { // LAST_ROW_ERR_COMPUTATION - using View = typename std::tuple_element_t<31, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<32, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * static_cast(in.get(C::to_radix_mem_err)) * (static_cast(in.get(C::to_radix_mem_last)) - FF(1)); - std::get<31>(evals) += (tmp * scaling_factor); + std::get<32>(evals) += (tmp * scaling_factor); } { // LAST_ROW_NUM_LIMBS_ZERO - using View = typename std::tuple_element_t<32, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<33, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) * (static_cast(in.get(C::to_radix_mem_last)) - FF(1)); - std::get<32>(evals) += (tmp * scaling_factor); + std::get<33>(evals) += (tmp * scaling_factor); } { // LAST_ROW_VALID_COMPUTATION - using View = typename std::tuple_element_t<33, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<34, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NO_ERR_NOR_NUM_LIMBS_ZERO) * ((CView(to_radix_mem_NUM_LIMBS_MINUS_ONE) * (static_cast(in.get(C::to_radix_mem_last)) * @@ -262,31 +268,31 @@ void to_radix_memImpl::accumulate(ContainerOverSubrelations& evals, static_cast(in.get(C::to_radix_mem_num_limbs_minus_one_inv))) - FF(1)) + static_cast(in.get(C::to_radix_mem_last))); - std::get<33>(evals) += (tmp * scaling_factor); + std::get<34>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<34, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<35, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::to_radix_mem_start)) * ((FF(1) - static_cast(in.get(C::to_radix_mem_err))) * (FF(1) - static_cast(in.get(C::to_radix_mem_sel_num_limbs_is_zero))) - static_cast(in.get(C::to_radix_mem_sel_should_write_mem))); - std::get<34>(evals) += (tmp * scaling_factor); + std::get<35>(evals) += (tmp * scaling_factor); } { // SEL_SHOULD_WRITE_MEM_CONTINUITY - using View = typename std::tuple_element_t<35, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<36, ContainerOverSubrelations>::View; auto tmp = CView(to_radix_mem_NOT_LAST) * (static_cast(in.get(C::to_radix_mem_sel_should_write_mem_shift)) - static_cast(in.get(C::to_radix_mem_sel_should_write_mem))); - std::get<35>(evals) += (tmp * scaling_factor); + std::get<36>(evals) += (tmp * scaling_factor); } { - using View = typename std::tuple_element_t<36, ContainerOverSubrelations>::View; + using View = typename std::tuple_element_t<37, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::to_radix_mem_output_tag)) - static_cast(in.get(C::to_radix_mem_sel_should_write_mem)) * ((CView(constants_MEM_TAG_U1) - CView(constants_MEM_TAG_U8)) * static_cast(in.get(C::to_radix_mem_is_output_bits)) + CView(constants_MEM_TAG_U8))); - std::get<36>(evals) += (tmp * scaling_factor); + std::get<37>(evals) += (tmp * scaling_factor); } }