diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp index 8343c01fc5f6..f007e4558743 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp @@ -10,6 +10,7 @@ #include "barretenberg/honk/proof_system/logderivative_library.hpp" #include "barretenberg/relations/generic_lookup/generic_lookup_relation.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" +#include "barretenberg/vm/stats.hpp" namespace bb { @@ -19,673 +20,687 @@ AvmCircuitBuilder::ProverPolynomials AvmCircuitBuilder::compute_polynomials() co ProverPolynomials polys; // Allocate mem for each column - - for (auto& poly : polys.get_to_be_shifted()) { - poly = Polynomial{ /*memory size*/ num_rows - 1, - /*largest possible index*/ num_rows, - /*make shiftable with offset*/ 1 }; - } + AVM_TRACK_TIME("circuit_builder/init_polys_to_be_shifted", ({ + for (auto& poly : polys.get_to_be_shifted()) { + poly = Polynomial{ /*memory size*/ num_rows - 1, + /*largest possible index*/ num_rows, + /*make shiftable with offset*/ 1 }; + } + })); // catch-all with fully formed polynomials - for (auto& poly : polys.get_unshifted()) { - if (poly.is_empty()) { - // Not set above - poly = Polynomial{ /*memory size*/ num_rows, /*largest possible index*/ num_rows }; - } - } + AVM_TRACK_TIME("circuit_builder/init_polys_unshifted", ({ + auto unshifted = polys.get_unshifted(); + bb::parallel_for(unshifted.size(), [&](size_t i) { + auto& poly = unshifted[i]; + if (poly.is_empty()) { + // Not set above + poly = Polynomial{ /*memory size*/ num_rows, /*largest possible index*/ num_rows }; + } + }); + })); - for (size_t i = 0; i < rows.size(); i++) { - polys.byte_lookup_sel_bin.set_if_valid_index(i, rows[i].byte_lookup_sel_bin); - polys.byte_lookup_table_byte_lengths.set_if_valid_index(i, rows[i].byte_lookup_table_byte_lengths); - polys.byte_lookup_table_in_tags.set_if_valid_index(i, rows[i].byte_lookup_table_in_tags); - polys.byte_lookup_table_input_a.set_if_valid_index(i, rows[i].byte_lookup_table_input_a); - polys.byte_lookup_table_input_b.set_if_valid_index(i, rows[i].byte_lookup_table_input_b); - polys.byte_lookup_table_op_id.set_if_valid_index(i, rows[i].byte_lookup_table_op_id); - polys.byte_lookup_table_output.set_if_valid_index(i, rows[i].byte_lookup_table_output); - polys.gas_base_da_gas_fixed_table.set_if_valid_index(i, rows[i].gas_base_da_gas_fixed_table); - polys.gas_base_l2_gas_fixed_table.set_if_valid_index(i, rows[i].gas_base_l2_gas_fixed_table); - polys.gas_dyn_da_gas_fixed_table.set_if_valid_index(i, rows[i].gas_dyn_da_gas_fixed_table); - polys.gas_dyn_l2_gas_fixed_table.set_if_valid_index(i, rows[i].gas_dyn_l2_gas_fixed_table); - polys.gas_sel_gas_cost.set_if_valid_index(i, rows[i].gas_sel_gas_cost); - polys.main_clk.set_if_valid_index(i, rows[i].main_clk); - polys.main_sel_first.set_if_valid_index(i, rows[i].main_sel_first); - polys.main_zeroes.set_if_valid_index(i, rows[i].main_zeroes); - polys.powers_power_of_2.set_if_valid_index(i, rows[i].powers_power_of_2); - polys.main_kernel_inputs.set_if_valid_index(i, rows[i].main_kernel_inputs); - polys.main_kernel_value_out.set_if_valid_index(i, rows[i].main_kernel_value_out); - polys.main_kernel_side_effect_out.set_if_valid_index(i, rows[i].main_kernel_side_effect_out); - polys.main_kernel_metadata_out.set_if_valid_index(i, rows[i].main_kernel_metadata_out); - polys.main_calldata.set_if_valid_index(i, rows[i].main_calldata); - polys.main_returndata.set_if_valid_index(i, rows[i].main_returndata); - polys.alu_a_hi.set_if_valid_index(i, rows[i].alu_a_hi); - polys.alu_a_lo.set_if_valid_index(i, rows[i].alu_a_lo); - polys.alu_b_hi.set_if_valid_index(i, rows[i].alu_b_hi); - polys.alu_b_lo.set_if_valid_index(i, rows[i].alu_b_lo); - polys.alu_b_pow.set_if_valid_index(i, rows[i].alu_b_pow); - polys.alu_c_hi.set_if_valid_index(i, rows[i].alu_c_hi); - polys.alu_c_lo.set_if_valid_index(i, rows[i].alu_c_lo); - polys.alu_cf.set_if_valid_index(i, rows[i].alu_cf); - polys.alu_clk.set_if_valid_index(i, rows[i].alu_clk); - polys.alu_cmp_gadget_gt.set_if_valid_index(i, rows[i].alu_cmp_gadget_gt); - polys.alu_cmp_gadget_input_a.set_if_valid_index(i, rows[i].alu_cmp_gadget_input_a); - polys.alu_cmp_gadget_input_b.set_if_valid_index(i, rows[i].alu_cmp_gadget_input_b); - polys.alu_cmp_gadget_result.set_if_valid_index(i, rows[i].alu_cmp_gadget_result); - polys.alu_cmp_gadget_sel.set_if_valid_index(i, rows[i].alu_cmp_gadget_sel); - polys.alu_ff_tag.set_if_valid_index(i, rows[i].alu_ff_tag); - polys.alu_ia.set_if_valid_index(i, rows[i].alu_ia); - polys.alu_ib.set_if_valid_index(i, rows[i].alu_ib); - polys.alu_ic.set_if_valid_index(i, rows[i].alu_ic); - polys.alu_in_tag.set_if_valid_index(i, rows[i].alu_in_tag); - polys.alu_max_bits_sub_b_bits.set_if_valid_index(i, rows[i].alu_max_bits_sub_b_bits); - polys.alu_max_bits_sub_b_pow.set_if_valid_index(i, rows[i].alu_max_bits_sub_b_pow); - polys.alu_op_add.set_if_valid_index(i, rows[i].alu_op_add); - polys.alu_op_cast.set_if_valid_index(i, rows[i].alu_op_cast); - polys.alu_op_div.set_if_valid_index(i, rows[i].alu_op_div); - polys.alu_op_eq.set_if_valid_index(i, rows[i].alu_op_eq); - polys.alu_op_lt.set_if_valid_index(i, rows[i].alu_op_lt); - polys.alu_op_lte.set_if_valid_index(i, rows[i].alu_op_lte); - polys.alu_op_mul.set_if_valid_index(i, rows[i].alu_op_mul); - polys.alu_op_not.set_if_valid_index(i, rows[i].alu_op_not); - polys.alu_op_shl.set_if_valid_index(i, rows[i].alu_op_shl); - polys.alu_op_shr.set_if_valid_index(i, rows[i].alu_op_shr); - polys.alu_op_sub.set_if_valid_index(i, rows[i].alu_op_sub); - polys.alu_partial_prod_hi.set_if_valid_index(i, rows[i].alu_partial_prod_hi); - polys.alu_partial_prod_lo.set_if_valid_index(i, rows[i].alu_partial_prod_lo); - polys.alu_range_check_input_value.set_if_valid_index(i, rows[i].alu_range_check_input_value); - polys.alu_range_check_num_bits.set_if_valid_index(i, rows[i].alu_range_check_num_bits); - polys.alu_range_check_sel.set_if_valid_index(i, rows[i].alu_range_check_sel); - polys.alu_remainder.set_if_valid_index(i, rows[i].alu_remainder); - polys.alu_sel_alu.set_if_valid_index(i, rows[i].alu_sel_alu); - polys.alu_sel_cmp.set_if_valid_index(i, rows[i].alu_sel_cmp); - polys.alu_sel_shift_which.set_if_valid_index(i, rows[i].alu_sel_shift_which); - polys.alu_u128_tag.set_if_valid_index(i, rows[i].alu_u128_tag); - polys.alu_u16_tag.set_if_valid_index(i, rows[i].alu_u16_tag); - polys.alu_u32_tag.set_if_valid_index(i, rows[i].alu_u32_tag); - polys.alu_u64_tag.set_if_valid_index(i, rows[i].alu_u64_tag); - polys.alu_u8_tag.set_if_valid_index(i, rows[i].alu_u8_tag); - polys.alu_zero_shift.set_if_valid_index(i, rows[i].alu_zero_shift); - polys.binary_acc_ia.set_if_valid_index(i, rows[i].binary_acc_ia); - polys.binary_acc_ib.set_if_valid_index(i, rows[i].binary_acc_ib); - polys.binary_acc_ic.set_if_valid_index(i, rows[i].binary_acc_ic); - polys.binary_clk.set_if_valid_index(i, rows[i].binary_clk); - polys.binary_ia_bytes.set_if_valid_index(i, rows[i].binary_ia_bytes); - polys.binary_ib_bytes.set_if_valid_index(i, rows[i].binary_ib_bytes); - polys.binary_ic_bytes.set_if_valid_index(i, rows[i].binary_ic_bytes); - polys.binary_in_tag.set_if_valid_index(i, rows[i].binary_in_tag); - polys.binary_mem_tag_ctr.set_if_valid_index(i, rows[i].binary_mem_tag_ctr); - polys.binary_mem_tag_ctr_inv.set_if_valid_index(i, rows[i].binary_mem_tag_ctr_inv); - polys.binary_op_id.set_if_valid_index(i, rows[i].binary_op_id); - polys.binary_sel_bin.set_if_valid_index(i, rows[i].binary_sel_bin); - polys.binary_start.set_if_valid_index(i, rows[i].binary_start); - polys.cmp_a_hi.set_if_valid_index(i, rows[i].cmp_a_hi); - polys.cmp_a_lo.set_if_valid_index(i, rows[i].cmp_a_lo); - polys.cmp_b_hi.set_if_valid_index(i, rows[i].cmp_b_hi); - polys.cmp_b_lo.set_if_valid_index(i, rows[i].cmp_b_lo); - polys.cmp_borrow.set_if_valid_index(i, rows[i].cmp_borrow); - polys.cmp_clk.set_if_valid_index(i, rows[i].cmp_clk); - polys.cmp_cmp_rng_ctr.set_if_valid_index(i, rows[i].cmp_cmp_rng_ctr); - polys.cmp_input_a.set_if_valid_index(i, rows[i].cmp_input_a); - polys.cmp_input_b.set_if_valid_index(i, rows[i].cmp_input_b); - polys.cmp_op_eq.set_if_valid_index(i, rows[i].cmp_op_eq); - polys.cmp_op_eq_diff_inv.set_if_valid_index(i, rows[i].cmp_op_eq_diff_inv); - polys.cmp_op_gt.set_if_valid_index(i, rows[i].cmp_op_gt); - polys.cmp_p_a_borrow.set_if_valid_index(i, rows[i].cmp_p_a_borrow); - polys.cmp_p_b_borrow.set_if_valid_index(i, rows[i].cmp_p_b_borrow); - polys.cmp_p_sub_a_hi.set_if_valid_index(i, rows[i].cmp_p_sub_a_hi); - polys.cmp_p_sub_a_lo.set_if_valid_index(i, rows[i].cmp_p_sub_a_lo); - polys.cmp_p_sub_b_hi.set_if_valid_index(i, rows[i].cmp_p_sub_b_hi); - polys.cmp_p_sub_b_lo.set_if_valid_index(i, rows[i].cmp_p_sub_b_lo); - polys.cmp_range_chk_clk.set_if_valid_index(i, rows[i].cmp_range_chk_clk); - polys.cmp_res_hi.set_if_valid_index(i, rows[i].cmp_res_hi); - polys.cmp_res_lo.set_if_valid_index(i, rows[i].cmp_res_lo); - polys.cmp_result.set_if_valid_index(i, rows[i].cmp_result); - polys.cmp_sel_cmp.set_if_valid_index(i, rows[i].cmp_sel_cmp); - polys.cmp_sel_rng_chk.set_if_valid_index(i, rows[i].cmp_sel_rng_chk); - polys.cmp_shift_sel.set_if_valid_index(i, rows[i].cmp_shift_sel); - polys.conversion_clk.set_if_valid_index(i, rows[i].conversion_clk); - polys.conversion_input.set_if_valid_index(i, rows[i].conversion_input); - polys.conversion_num_limbs.set_if_valid_index(i, rows[i].conversion_num_limbs); - polys.conversion_radix.set_if_valid_index(i, rows[i].conversion_radix); - polys.conversion_sel_to_radix_le.set_if_valid_index(i, rows[i].conversion_sel_to_radix_le); - polys.keccakf1600_clk.set_if_valid_index(i, rows[i].keccakf1600_clk); - polys.keccakf1600_input.set_if_valid_index(i, rows[i].keccakf1600_input); - polys.keccakf1600_output.set_if_valid_index(i, rows[i].keccakf1600_output); - polys.keccakf1600_sel_keccakf1600.set_if_valid_index(i, rows[i].keccakf1600_sel_keccakf1600); - polys.main_abs_da_rem_gas.set_if_valid_index(i, rows[i].main_abs_da_rem_gas); - polys.main_abs_l2_rem_gas.set_if_valid_index(i, rows[i].main_abs_l2_rem_gas); - polys.main_alu_in_tag.set_if_valid_index(i, rows[i].main_alu_in_tag); - polys.main_base_da_gas_op_cost.set_if_valid_index(i, rows[i].main_base_da_gas_op_cost); - polys.main_base_l2_gas_op_cost.set_if_valid_index(i, rows[i].main_base_l2_gas_op_cost); - polys.main_bin_op_id.set_if_valid_index(i, rows[i].main_bin_op_id); - polys.main_call_ptr.set_if_valid_index(i, rows[i].main_call_ptr); - polys.main_da_gas_remaining.set_if_valid_index(i, rows[i].main_da_gas_remaining); - polys.main_da_out_of_gas.set_if_valid_index(i, rows[i].main_da_out_of_gas); - polys.main_dyn_da_gas_op_cost.set_if_valid_index(i, rows[i].main_dyn_da_gas_op_cost); - polys.main_dyn_gas_multiplier.set_if_valid_index(i, rows[i].main_dyn_gas_multiplier); - polys.main_dyn_l2_gas_op_cost.set_if_valid_index(i, rows[i].main_dyn_l2_gas_op_cost); - polys.main_emit_l2_to_l1_msg_write_offset.set_if_valid_index(i, rows[i].main_emit_l2_to_l1_msg_write_offset); - polys.main_emit_note_hash_write_offset.set_if_valid_index(i, rows[i].main_emit_note_hash_write_offset); - polys.main_emit_nullifier_write_offset.set_if_valid_index(i, rows[i].main_emit_nullifier_write_offset); - polys.main_emit_unencrypted_log_write_offset.set_if_valid_index(i, - rows[i].main_emit_unencrypted_log_write_offset); - polys.main_ia.set_if_valid_index(i, rows[i].main_ia); - polys.main_ib.set_if_valid_index(i, rows[i].main_ib); - polys.main_ic.set_if_valid_index(i, rows[i].main_ic); - polys.main_id.set_if_valid_index(i, rows[i].main_id); - polys.main_id_zero.set_if_valid_index(i, rows[i].main_id_zero); - polys.main_ind_addr_a.set_if_valid_index(i, rows[i].main_ind_addr_a); - polys.main_ind_addr_b.set_if_valid_index(i, rows[i].main_ind_addr_b); - polys.main_ind_addr_c.set_if_valid_index(i, rows[i].main_ind_addr_c); - polys.main_ind_addr_d.set_if_valid_index(i, rows[i].main_ind_addr_d); - polys.main_internal_return_ptr.set_if_valid_index(i, rows[i].main_internal_return_ptr); - polys.main_inv.set_if_valid_index(i, rows[i].main_inv); - polys.main_kernel_in_offset.set_if_valid_index(i, rows[i].main_kernel_in_offset); - polys.main_kernel_out_offset.set_if_valid_index(i, rows[i].main_kernel_out_offset); - polys.main_l1_to_l2_msg_exists_write_offset.set_if_valid_index(i, - rows[i].main_l1_to_l2_msg_exists_write_offset); - polys.main_l2_gas_remaining.set_if_valid_index(i, rows[i].main_l2_gas_remaining); - polys.main_l2_out_of_gas.set_if_valid_index(i, rows[i].main_l2_out_of_gas); - polys.main_mem_addr_a.set_if_valid_index(i, rows[i].main_mem_addr_a); - polys.main_mem_addr_b.set_if_valid_index(i, rows[i].main_mem_addr_b); - polys.main_mem_addr_c.set_if_valid_index(i, rows[i].main_mem_addr_c); - polys.main_mem_addr_d.set_if_valid_index(i, rows[i].main_mem_addr_d); - polys.main_note_hash_exist_write_offset.set_if_valid_index(i, rows[i].main_note_hash_exist_write_offset); - polys.main_nullifier_exists_write_offset.set_if_valid_index(i, rows[i].main_nullifier_exists_write_offset); - polys.main_nullifier_non_exists_write_offset.set_if_valid_index(i, - rows[i].main_nullifier_non_exists_write_offset); - polys.main_op_err.set_if_valid_index(i, rows[i].main_op_err); - polys.main_opcode_val.set_if_valid_index(i, rows[i].main_opcode_val); - polys.main_pc.set_if_valid_index(i, rows[i].main_pc); - polys.main_r_in_tag.set_if_valid_index(i, rows[i].main_r_in_tag); - polys.main_rwa.set_if_valid_index(i, rows[i].main_rwa); - polys.main_rwb.set_if_valid_index(i, rows[i].main_rwb); - polys.main_rwc.set_if_valid_index(i, rows[i].main_rwc); - polys.main_rwd.set_if_valid_index(i, rows[i].main_rwd); - polys.main_sel_alu.set_if_valid_index(i, rows[i].main_sel_alu); - polys.main_sel_bin.set_if_valid_index(i, rows[i].main_sel_bin); - polys.main_sel_calldata.set_if_valid_index(i, rows[i].main_sel_calldata); - polys.main_sel_execution_row.set_if_valid_index(i, rows[i].main_sel_execution_row); - polys.main_sel_kernel_inputs.set_if_valid_index(i, rows[i].main_sel_kernel_inputs); - polys.main_sel_kernel_out.set_if_valid_index(i, rows[i].main_sel_kernel_out); - polys.main_sel_last.set_if_valid_index(i, rows[i].main_sel_last); - polys.main_sel_mem_op_a.set_if_valid_index(i, rows[i].main_sel_mem_op_a); - polys.main_sel_mem_op_b.set_if_valid_index(i, rows[i].main_sel_mem_op_b); - polys.main_sel_mem_op_c.set_if_valid_index(i, rows[i].main_sel_mem_op_c); - polys.main_sel_mem_op_d.set_if_valid_index(i, rows[i].main_sel_mem_op_d); - polys.main_sel_mov_ia_to_ic.set_if_valid_index(i, rows[i].main_sel_mov_ia_to_ic); - polys.main_sel_mov_ib_to_ic.set_if_valid_index(i, rows[i].main_sel_mov_ib_to_ic); - polys.main_sel_op_add.set_if_valid_index(i, rows[i].main_sel_op_add); - polys.main_sel_op_address.set_if_valid_index(i, rows[i].main_sel_op_address); - polys.main_sel_op_and.set_if_valid_index(i, rows[i].main_sel_op_and); - polys.main_sel_op_block_number.set_if_valid_index(i, rows[i].main_sel_op_block_number); - polys.main_sel_op_calldata_copy.set_if_valid_index(i, rows[i].main_sel_op_calldata_copy); - polys.main_sel_op_cast.set_if_valid_index(i, rows[i].main_sel_op_cast); - polys.main_sel_op_chain_id.set_if_valid_index(i, rows[i].main_sel_op_chain_id); - polys.main_sel_op_cmov.set_if_valid_index(i, rows[i].main_sel_op_cmov); - polys.main_sel_op_dagasleft.set_if_valid_index(i, rows[i].main_sel_op_dagasleft); - polys.main_sel_op_div.set_if_valid_index(i, rows[i].main_sel_op_div); - polys.main_sel_op_ecadd.set_if_valid_index(i, rows[i].main_sel_op_ecadd); - polys.main_sel_op_emit_l2_to_l1_msg.set_if_valid_index(i, rows[i].main_sel_op_emit_l2_to_l1_msg); - polys.main_sel_op_emit_note_hash.set_if_valid_index(i, rows[i].main_sel_op_emit_note_hash); - polys.main_sel_op_emit_nullifier.set_if_valid_index(i, rows[i].main_sel_op_emit_nullifier); - polys.main_sel_op_emit_unencrypted_log.set_if_valid_index(i, rows[i].main_sel_op_emit_unencrypted_log); - polys.main_sel_op_eq.set_if_valid_index(i, rows[i].main_sel_op_eq); - polys.main_sel_op_external_call.set_if_valid_index(i, rows[i].main_sel_op_external_call); - polys.main_sel_op_external_return.set_if_valid_index(i, rows[i].main_sel_op_external_return); - polys.main_sel_op_external_revert.set_if_valid_index(i, rows[i].main_sel_op_external_revert); - polys.main_sel_op_fdiv.set_if_valid_index(i, rows[i].main_sel_op_fdiv); - polys.main_sel_op_fee_per_da_gas.set_if_valid_index(i, rows[i].main_sel_op_fee_per_da_gas); - polys.main_sel_op_fee_per_l2_gas.set_if_valid_index(i, rows[i].main_sel_op_fee_per_l2_gas); - polys.main_sel_op_function_selector.set_if_valid_index(i, rows[i].main_sel_op_function_selector); - polys.main_sel_op_get_contract_instance.set_if_valid_index(i, rows[i].main_sel_op_get_contract_instance); - polys.main_sel_op_internal_call.set_if_valid_index(i, rows[i].main_sel_op_internal_call); - polys.main_sel_op_internal_return.set_if_valid_index(i, rows[i].main_sel_op_internal_return); - polys.main_sel_op_jump.set_if_valid_index(i, rows[i].main_sel_op_jump); - polys.main_sel_op_jumpi.set_if_valid_index(i, rows[i].main_sel_op_jumpi); - polys.main_sel_op_keccak.set_if_valid_index(i, rows[i].main_sel_op_keccak); - polys.main_sel_op_l1_to_l2_msg_exists.set_if_valid_index(i, rows[i].main_sel_op_l1_to_l2_msg_exists); - polys.main_sel_op_l2gasleft.set_if_valid_index(i, rows[i].main_sel_op_l2gasleft); - polys.main_sel_op_lt.set_if_valid_index(i, rows[i].main_sel_op_lt); - polys.main_sel_op_lte.set_if_valid_index(i, rows[i].main_sel_op_lte); - polys.main_sel_op_mov.set_if_valid_index(i, rows[i].main_sel_op_mov); - polys.main_sel_op_msm.set_if_valid_index(i, rows[i].main_sel_op_msm); - polys.main_sel_op_mul.set_if_valid_index(i, rows[i].main_sel_op_mul); - polys.main_sel_op_not.set_if_valid_index(i, rows[i].main_sel_op_not); - polys.main_sel_op_note_hash_exists.set_if_valid_index(i, rows[i].main_sel_op_note_hash_exists); - polys.main_sel_op_nullifier_exists.set_if_valid_index(i, rows[i].main_sel_op_nullifier_exists); - polys.main_sel_op_or.set_if_valid_index(i, rows[i].main_sel_op_or); - polys.main_sel_op_pedersen.set_if_valid_index(i, rows[i].main_sel_op_pedersen); - polys.main_sel_op_pedersen_commit.set_if_valid_index(i, rows[i].main_sel_op_pedersen_commit); - polys.main_sel_op_poseidon2.set_if_valid_index(i, rows[i].main_sel_op_poseidon2); - polys.main_sel_op_radix_le.set_if_valid_index(i, rows[i].main_sel_op_radix_le); - polys.main_sel_op_sender.set_if_valid_index(i, rows[i].main_sel_op_sender); - polys.main_sel_op_set.set_if_valid_index(i, rows[i].main_sel_op_set); - polys.main_sel_op_sha256.set_if_valid_index(i, rows[i].main_sel_op_sha256); - polys.main_sel_op_shl.set_if_valid_index(i, rows[i].main_sel_op_shl); - polys.main_sel_op_shr.set_if_valid_index(i, rows[i].main_sel_op_shr); - polys.main_sel_op_sload.set_if_valid_index(i, rows[i].main_sel_op_sload); - polys.main_sel_op_sstore.set_if_valid_index(i, rows[i].main_sel_op_sstore); - polys.main_sel_op_storage_address.set_if_valid_index(i, rows[i].main_sel_op_storage_address); - polys.main_sel_op_sub.set_if_valid_index(i, rows[i].main_sel_op_sub); - polys.main_sel_op_timestamp.set_if_valid_index(i, rows[i].main_sel_op_timestamp); - polys.main_sel_op_transaction_fee.set_if_valid_index(i, rows[i].main_sel_op_transaction_fee); - polys.main_sel_op_version.set_if_valid_index(i, rows[i].main_sel_op_version); - polys.main_sel_op_xor.set_if_valid_index(i, rows[i].main_sel_op_xor); - polys.main_sel_q_kernel_lookup.set_if_valid_index(i, rows[i].main_sel_q_kernel_lookup); - polys.main_sel_q_kernel_output_lookup.set_if_valid_index(i, rows[i].main_sel_q_kernel_output_lookup); - polys.main_sel_resolve_ind_addr_a.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_a); - polys.main_sel_resolve_ind_addr_b.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_b); - polys.main_sel_resolve_ind_addr_c.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_c); - polys.main_sel_resolve_ind_addr_d.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_d); - polys.main_sel_returndata.set_if_valid_index(i, rows[i].main_sel_returndata); - polys.main_sel_rng_16.set_if_valid_index(i, rows[i].main_sel_rng_16); - polys.main_sel_rng_8.set_if_valid_index(i, rows[i].main_sel_rng_8); - polys.main_sel_slice_gadget.set_if_valid_index(i, rows[i].main_sel_slice_gadget); - polys.main_side_effect_counter.set_if_valid_index(i, rows[i].main_side_effect_counter); - polys.main_sload_write_offset.set_if_valid_index(i, rows[i].main_sload_write_offset); - polys.main_space_id.set_if_valid_index(i, rows[i].main_space_id); - polys.main_sstore_write_offset.set_if_valid_index(i, rows[i].main_sstore_write_offset); - polys.main_tag_err.set_if_valid_index(i, rows[i].main_tag_err); - polys.main_w_in_tag.set_if_valid_index(i, rows[i].main_w_in_tag); - polys.mem_addr.set_if_valid_index(i, rows[i].mem_addr); - polys.mem_clk.set_if_valid_index(i, rows[i].mem_clk); - polys.mem_diff.set_if_valid_index(i, rows[i].mem_diff); - polys.mem_glob_addr.set_if_valid_index(i, rows[i].mem_glob_addr); - polys.mem_last.set_if_valid_index(i, rows[i].mem_last); - polys.mem_lastAccess.set_if_valid_index(i, rows[i].mem_lastAccess); - polys.mem_one_min_inv.set_if_valid_index(i, rows[i].mem_one_min_inv); - polys.mem_r_in_tag.set_if_valid_index(i, rows[i].mem_r_in_tag); - polys.mem_rw.set_if_valid_index(i, rows[i].mem_rw); - polys.mem_sel_mem.set_if_valid_index(i, rows[i].mem_sel_mem); - polys.mem_sel_mov_ia_to_ic.set_if_valid_index(i, rows[i].mem_sel_mov_ia_to_ic); - polys.mem_sel_mov_ib_to_ic.set_if_valid_index(i, rows[i].mem_sel_mov_ib_to_ic); - polys.mem_sel_op_a.set_if_valid_index(i, rows[i].mem_sel_op_a); - polys.mem_sel_op_b.set_if_valid_index(i, rows[i].mem_sel_op_b); - polys.mem_sel_op_c.set_if_valid_index(i, rows[i].mem_sel_op_c); - polys.mem_sel_op_cmov.set_if_valid_index(i, rows[i].mem_sel_op_cmov); - polys.mem_sel_op_d.set_if_valid_index(i, rows[i].mem_sel_op_d); - polys.mem_sel_op_poseidon_read_a.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_a); - polys.mem_sel_op_poseidon_read_b.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_b); - polys.mem_sel_op_poseidon_read_c.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_c); - polys.mem_sel_op_poseidon_read_d.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_d); - polys.mem_sel_op_poseidon_write_a.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_a); - polys.mem_sel_op_poseidon_write_b.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_b); - polys.mem_sel_op_poseidon_write_c.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_c); - polys.mem_sel_op_poseidon_write_d.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_d); - polys.mem_sel_op_slice.set_if_valid_index(i, rows[i].mem_sel_op_slice); - polys.mem_sel_resolve_ind_addr_a.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_a); - polys.mem_sel_resolve_ind_addr_b.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_b); - polys.mem_sel_resolve_ind_addr_c.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_c); - polys.mem_sel_resolve_ind_addr_d.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_d); - polys.mem_sel_rng_chk.set_if_valid_index(i, rows[i].mem_sel_rng_chk); - polys.mem_skip_check_tag.set_if_valid_index(i, rows[i].mem_skip_check_tag); - polys.mem_space_id.set_if_valid_index(i, rows[i].mem_space_id); - polys.mem_tag.set_if_valid_index(i, rows[i].mem_tag); - polys.mem_tag_err.set_if_valid_index(i, rows[i].mem_tag_err); - polys.mem_tsp.set_if_valid_index(i, rows[i].mem_tsp); - polys.mem_val.set_if_valid_index(i, rows[i].mem_val); - polys.mem_w_in_tag.set_if_valid_index(i, rows[i].mem_w_in_tag); - polys.pedersen_clk.set_if_valid_index(i, rows[i].pedersen_clk); - polys.pedersen_input.set_if_valid_index(i, rows[i].pedersen_input); - polys.pedersen_output.set_if_valid_index(i, rows[i].pedersen_output); - polys.pedersen_sel_pedersen.set_if_valid_index(i, rows[i].pedersen_sel_pedersen); - polys.poseidon2_B_10_0.set_if_valid_index(i, rows[i].poseidon2_B_10_0); - polys.poseidon2_B_10_1.set_if_valid_index(i, rows[i].poseidon2_B_10_1); - polys.poseidon2_B_10_2.set_if_valid_index(i, rows[i].poseidon2_B_10_2); - polys.poseidon2_B_10_3.set_if_valid_index(i, rows[i].poseidon2_B_10_3); - polys.poseidon2_B_11_0.set_if_valid_index(i, rows[i].poseidon2_B_11_0); - polys.poseidon2_B_11_1.set_if_valid_index(i, rows[i].poseidon2_B_11_1); - polys.poseidon2_B_11_2.set_if_valid_index(i, rows[i].poseidon2_B_11_2); - polys.poseidon2_B_11_3.set_if_valid_index(i, rows[i].poseidon2_B_11_3); - polys.poseidon2_B_12_0.set_if_valid_index(i, rows[i].poseidon2_B_12_0); - polys.poseidon2_B_12_1.set_if_valid_index(i, rows[i].poseidon2_B_12_1); - polys.poseidon2_B_12_2.set_if_valid_index(i, rows[i].poseidon2_B_12_2); - polys.poseidon2_B_12_3.set_if_valid_index(i, rows[i].poseidon2_B_12_3); - polys.poseidon2_B_13_0.set_if_valid_index(i, rows[i].poseidon2_B_13_0); - polys.poseidon2_B_13_1.set_if_valid_index(i, rows[i].poseidon2_B_13_1); - polys.poseidon2_B_13_2.set_if_valid_index(i, rows[i].poseidon2_B_13_2); - polys.poseidon2_B_13_3.set_if_valid_index(i, rows[i].poseidon2_B_13_3); - polys.poseidon2_B_14_0.set_if_valid_index(i, rows[i].poseidon2_B_14_0); - polys.poseidon2_B_14_1.set_if_valid_index(i, rows[i].poseidon2_B_14_1); - polys.poseidon2_B_14_2.set_if_valid_index(i, rows[i].poseidon2_B_14_2); - polys.poseidon2_B_14_3.set_if_valid_index(i, rows[i].poseidon2_B_14_3); - polys.poseidon2_B_15_0.set_if_valid_index(i, rows[i].poseidon2_B_15_0); - polys.poseidon2_B_15_1.set_if_valid_index(i, rows[i].poseidon2_B_15_1); - polys.poseidon2_B_15_2.set_if_valid_index(i, rows[i].poseidon2_B_15_2); - polys.poseidon2_B_15_3.set_if_valid_index(i, rows[i].poseidon2_B_15_3); - polys.poseidon2_B_16_0.set_if_valid_index(i, rows[i].poseidon2_B_16_0); - polys.poseidon2_B_16_1.set_if_valid_index(i, rows[i].poseidon2_B_16_1); - polys.poseidon2_B_16_2.set_if_valid_index(i, rows[i].poseidon2_B_16_2); - polys.poseidon2_B_16_3.set_if_valid_index(i, rows[i].poseidon2_B_16_3); - polys.poseidon2_B_17_0.set_if_valid_index(i, rows[i].poseidon2_B_17_0); - polys.poseidon2_B_17_1.set_if_valid_index(i, rows[i].poseidon2_B_17_1); - polys.poseidon2_B_17_2.set_if_valid_index(i, rows[i].poseidon2_B_17_2); - polys.poseidon2_B_17_3.set_if_valid_index(i, rows[i].poseidon2_B_17_3); - polys.poseidon2_B_18_0.set_if_valid_index(i, rows[i].poseidon2_B_18_0); - polys.poseidon2_B_18_1.set_if_valid_index(i, rows[i].poseidon2_B_18_1); - polys.poseidon2_B_18_2.set_if_valid_index(i, rows[i].poseidon2_B_18_2); - polys.poseidon2_B_18_3.set_if_valid_index(i, rows[i].poseidon2_B_18_3); - polys.poseidon2_B_19_0.set_if_valid_index(i, rows[i].poseidon2_B_19_0); - polys.poseidon2_B_19_1.set_if_valid_index(i, rows[i].poseidon2_B_19_1); - polys.poseidon2_B_19_2.set_if_valid_index(i, rows[i].poseidon2_B_19_2); - polys.poseidon2_B_19_3.set_if_valid_index(i, rows[i].poseidon2_B_19_3); - polys.poseidon2_B_20_0.set_if_valid_index(i, rows[i].poseidon2_B_20_0); - polys.poseidon2_B_20_1.set_if_valid_index(i, rows[i].poseidon2_B_20_1); - polys.poseidon2_B_20_2.set_if_valid_index(i, rows[i].poseidon2_B_20_2); - polys.poseidon2_B_20_3.set_if_valid_index(i, rows[i].poseidon2_B_20_3); - polys.poseidon2_B_21_0.set_if_valid_index(i, rows[i].poseidon2_B_21_0); - polys.poseidon2_B_21_1.set_if_valid_index(i, rows[i].poseidon2_B_21_1); - polys.poseidon2_B_21_2.set_if_valid_index(i, rows[i].poseidon2_B_21_2); - polys.poseidon2_B_21_3.set_if_valid_index(i, rows[i].poseidon2_B_21_3); - polys.poseidon2_B_22_0.set_if_valid_index(i, rows[i].poseidon2_B_22_0); - polys.poseidon2_B_22_1.set_if_valid_index(i, rows[i].poseidon2_B_22_1); - polys.poseidon2_B_22_2.set_if_valid_index(i, rows[i].poseidon2_B_22_2); - polys.poseidon2_B_22_3.set_if_valid_index(i, rows[i].poseidon2_B_22_3); - polys.poseidon2_B_23_0.set_if_valid_index(i, rows[i].poseidon2_B_23_0); - polys.poseidon2_B_23_1.set_if_valid_index(i, rows[i].poseidon2_B_23_1); - polys.poseidon2_B_23_2.set_if_valid_index(i, rows[i].poseidon2_B_23_2); - polys.poseidon2_B_23_3.set_if_valid_index(i, rows[i].poseidon2_B_23_3); - polys.poseidon2_B_24_0.set_if_valid_index(i, rows[i].poseidon2_B_24_0); - polys.poseidon2_B_24_1.set_if_valid_index(i, rows[i].poseidon2_B_24_1); - polys.poseidon2_B_24_2.set_if_valid_index(i, rows[i].poseidon2_B_24_2); - polys.poseidon2_B_24_3.set_if_valid_index(i, rows[i].poseidon2_B_24_3); - polys.poseidon2_B_25_0.set_if_valid_index(i, rows[i].poseidon2_B_25_0); - polys.poseidon2_B_25_1.set_if_valid_index(i, rows[i].poseidon2_B_25_1); - polys.poseidon2_B_25_2.set_if_valid_index(i, rows[i].poseidon2_B_25_2); - polys.poseidon2_B_25_3.set_if_valid_index(i, rows[i].poseidon2_B_25_3); - polys.poseidon2_B_26_0.set_if_valid_index(i, rows[i].poseidon2_B_26_0); - polys.poseidon2_B_26_1.set_if_valid_index(i, rows[i].poseidon2_B_26_1); - polys.poseidon2_B_26_2.set_if_valid_index(i, rows[i].poseidon2_B_26_2); - polys.poseidon2_B_26_3.set_if_valid_index(i, rows[i].poseidon2_B_26_3); - polys.poseidon2_B_27_0.set_if_valid_index(i, rows[i].poseidon2_B_27_0); - polys.poseidon2_B_27_1.set_if_valid_index(i, rows[i].poseidon2_B_27_1); - polys.poseidon2_B_27_2.set_if_valid_index(i, rows[i].poseidon2_B_27_2); - polys.poseidon2_B_27_3.set_if_valid_index(i, rows[i].poseidon2_B_27_3); - polys.poseidon2_B_28_0.set_if_valid_index(i, rows[i].poseidon2_B_28_0); - polys.poseidon2_B_28_1.set_if_valid_index(i, rows[i].poseidon2_B_28_1); - polys.poseidon2_B_28_2.set_if_valid_index(i, rows[i].poseidon2_B_28_2); - polys.poseidon2_B_28_3.set_if_valid_index(i, rows[i].poseidon2_B_28_3); - polys.poseidon2_B_29_0.set_if_valid_index(i, rows[i].poseidon2_B_29_0); - polys.poseidon2_B_29_1.set_if_valid_index(i, rows[i].poseidon2_B_29_1); - polys.poseidon2_B_29_2.set_if_valid_index(i, rows[i].poseidon2_B_29_2); - polys.poseidon2_B_29_3.set_if_valid_index(i, rows[i].poseidon2_B_29_3); - polys.poseidon2_B_30_0.set_if_valid_index(i, rows[i].poseidon2_B_30_0); - polys.poseidon2_B_30_1.set_if_valid_index(i, rows[i].poseidon2_B_30_1); - polys.poseidon2_B_30_2.set_if_valid_index(i, rows[i].poseidon2_B_30_2); - polys.poseidon2_B_30_3.set_if_valid_index(i, rows[i].poseidon2_B_30_3); - polys.poseidon2_B_31_0.set_if_valid_index(i, rows[i].poseidon2_B_31_0); - polys.poseidon2_B_31_1.set_if_valid_index(i, rows[i].poseidon2_B_31_1); - polys.poseidon2_B_31_2.set_if_valid_index(i, rows[i].poseidon2_B_31_2); - polys.poseidon2_B_31_3.set_if_valid_index(i, rows[i].poseidon2_B_31_3); - polys.poseidon2_B_32_0.set_if_valid_index(i, rows[i].poseidon2_B_32_0); - polys.poseidon2_B_32_1.set_if_valid_index(i, rows[i].poseidon2_B_32_1); - polys.poseidon2_B_32_2.set_if_valid_index(i, rows[i].poseidon2_B_32_2); - polys.poseidon2_B_32_3.set_if_valid_index(i, rows[i].poseidon2_B_32_3); - polys.poseidon2_B_33_0.set_if_valid_index(i, rows[i].poseidon2_B_33_0); - polys.poseidon2_B_33_1.set_if_valid_index(i, rows[i].poseidon2_B_33_1); - polys.poseidon2_B_33_2.set_if_valid_index(i, rows[i].poseidon2_B_33_2); - polys.poseidon2_B_33_3.set_if_valid_index(i, rows[i].poseidon2_B_33_3); - polys.poseidon2_B_34_0.set_if_valid_index(i, rows[i].poseidon2_B_34_0); - polys.poseidon2_B_34_1.set_if_valid_index(i, rows[i].poseidon2_B_34_1); - polys.poseidon2_B_34_2.set_if_valid_index(i, rows[i].poseidon2_B_34_2); - polys.poseidon2_B_34_3.set_if_valid_index(i, rows[i].poseidon2_B_34_3); - polys.poseidon2_B_35_0.set_if_valid_index(i, rows[i].poseidon2_B_35_0); - polys.poseidon2_B_35_1.set_if_valid_index(i, rows[i].poseidon2_B_35_1); - polys.poseidon2_B_35_2.set_if_valid_index(i, rows[i].poseidon2_B_35_2); - polys.poseidon2_B_35_3.set_if_valid_index(i, rows[i].poseidon2_B_35_3); - polys.poseidon2_B_36_0.set_if_valid_index(i, rows[i].poseidon2_B_36_0); - polys.poseidon2_B_36_1.set_if_valid_index(i, rows[i].poseidon2_B_36_1); - polys.poseidon2_B_36_2.set_if_valid_index(i, rows[i].poseidon2_B_36_2); - polys.poseidon2_B_36_3.set_if_valid_index(i, rows[i].poseidon2_B_36_3); - polys.poseidon2_B_37_0.set_if_valid_index(i, rows[i].poseidon2_B_37_0); - polys.poseidon2_B_37_1.set_if_valid_index(i, rows[i].poseidon2_B_37_1); - polys.poseidon2_B_37_2.set_if_valid_index(i, rows[i].poseidon2_B_37_2); - polys.poseidon2_B_37_3.set_if_valid_index(i, rows[i].poseidon2_B_37_3); - polys.poseidon2_B_38_0.set_if_valid_index(i, rows[i].poseidon2_B_38_0); - polys.poseidon2_B_38_1.set_if_valid_index(i, rows[i].poseidon2_B_38_1); - polys.poseidon2_B_38_2.set_if_valid_index(i, rows[i].poseidon2_B_38_2); - polys.poseidon2_B_38_3.set_if_valid_index(i, rows[i].poseidon2_B_38_3); - polys.poseidon2_B_39_0.set_if_valid_index(i, rows[i].poseidon2_B_39_0); - polys.poseidon2_B_39_1.set_if_valid_index(i, rows[i].poseidon2_B_39_1); - polys.poseidon2_B_39_2.set_if_valid_index(i, rows[i].poseidon2_B_39_2); - polys.poseidon2_B_39_3.set_if_valid_index(i, rows[i].poseidon2_B_39_3); - polys.poseidon2_B_40_0.set_if_valid_index(i, rows[i].poseidon2_B_40_0); - polys.poseidon2_B_40_1.set_if_valid_index(i, rows[i].poseidon2_B_40_1); - polys.poseidon2_B_40_2.set_if_valid_index(i, rows[i].poseidon2_B_40_2); - polys.poseidon2_B_40_3.set_if_valid_index(i, rows[i].poseidon2_B_40_3); - polys.poseidon2_B_41_0.set_if_valid_index(i, rows[i].poseidon2_B_41_0); - polys.poseidon2_B_41_1.set_if_valid_index(i, rows[i].poseidon2_B_41_1); - polys.poseidon2_B_41_2.set_if_valid_index(i, rows[i].poseidon2_B_41_2); - polys.poseidon2_B_41_3.set_if_valid_index(i, rows[i].poseidon2_B_41_3); - polys.poseidon2_B_42_0.set_if_valid_index(i, rows[i].poseidon2_B_42_0); - polys.poseidon2_B_42_1.set_if_valid_index(i, rows[i].poseidon2_B_42_1); - polys.poseidon2_B_42_2.set_if_valid_index(i, rows[i].poseidon2_B_42_2); - polys.poseidon2_B_42_3.set_if_valid_index(i, rows[i].poseidon2_B_42_3); - polys.poseidon2_B_43_0.set_if_valid_index(i, rows[i].poseidon2_B_43_0); - polys.poseidon2_B_43_1.set_if_valid_index(i, rows[i].poseidon2_B_43_1); - polys.poseidon2_B_43_2.set_if_valid_index(i, rows[i].poseidon2_B_43_2); - polys.poseidon2_B_43_3.set_if_valid_index(i, rows[i].poseidon2_B_43_3); - polys.poseidon2_B_44_0.set_if_valid_index(i, rows[i].poseidon2_B_44_0); - polys.poseidon2_B_44_1.set_if_valid_index(i, rows[i].poseidon2_B_44_1); - polys.poseidon2_B_44_2.set_if_valid_index(i, rows[i].poseidon2_B_44_2); - polys.poseidon2_B_44_3.set_if_valid_index(i, rows[i].poseidon2_B_44_3); - polys.poseidon2_B_45_0.set_if_valid_index(i, rows[i].poseidon2_B_45_0); - polys.poseidon2_B_45_1.set_if_valid_index(i, rows[i].poseidon2_B_45_1); - polys.poseidon2_B_45_2.set_if_valid_index(i, rows[i].poseidon2_B_45_2); - polys.poseidon2_B_45_3.set_if_valid_index(i, rows[i].poseidon2_B_45_3); - polys.poseidon2_B_46_0.set_if_valid_index(i, rows[i].poseidon2_B_46_0); - polys.poseidon2_B_46_1.set_if_valid_index(i, rows[i].poseidon2_B_46_1); - polys.poseidon2_B_46_2.set_if_valid_index(i, rows[i].poseidon2_B_46_2); - polys.poseidon2_B_46_3.set_if_valid_index(i, rows[i].poseidon2_B_46_3); - polys.poseidon2_B_47_0.set_if_valid_index(i, rows[i].poseidon2_B_47_0); - polys.poseidon2_B_47_1.set_if_valid_index(i, rows[i].poseidon2_B_47_1); - polys.poseidon2_B_47_2.set_if_valid_index(i, rows[i].poseidon2_B_47_2); - polys.poseidon2_B_47_3.set_if_valid_index(i, rows[i].poseidon2_B_47_3); - polys.poseidon2_B_48_0.set_if_valid_index(i, rows[i].poseidon2_B_48_0); - polys.poseidon2_B_48_1.set_if_valid_index(i, rows[i].poseidon2_B_48_1); - polys.poseidon2_B_48_2.set_if_valid_index(i, rows[i].poseidon2_B_48_2); - polys.poseidon2_B_48_3.set_if_valid_index(i, rows[i].poseidon2_B_48_3); - polys.poseidon2_B_49_0.set_if_valid_index(i, rows[i].poseidon2_B_49_0); - polys.poseidon2_B_49_1.set_if_valid_index(i, rows[i].poseidon2_B_49_1); - polys.poseidon2_B_49_2.set_if_valid_index(i, rows[i].poseidon2_B_49_2); - polys.poseidon2_B_49_3.set_if_valid_index(i, rows[i].poseidon2_B_49_3); - polys.poseidon2_B_4_0.set_if_valid_index(i, rows[i].poseidon2_B_4_0); - polys.poseidon2_B_4_1.set_if_valid_index(i, rows[i].poseidon2_B_4_1); - polys.poseidon2_B_4_2.set_if_valid_index(i, rows[i].poseidon2_B_4_2); - polys.poseidon2_B_4_3.set_if_valid_index(i, rows[i].poseidon2_B_4_3); - polys.poseidon2_B_50_0.set_if_valid_index(i, rows[i].poseidon2_B_50_0); - polys.poseidon2_B_50_1.set_if_valid_index(i, rows[i].poseidon2_B_50_1); - polys.poseidon2_B_50_2.set_if_valid_index(i, rows[i].poseidon2_B_50_2); - polys.poseidon2_B_50_3.set_if_valid_index(i, rows[i].poseidon2_B_50_3); - polys.poseidon2_B_51_0.set_if_valid_index(i, rows[i].poseidon2_B_51_0); - polys.poseidon2_B_51_1.set_if_valid_index(i, rows[i].poseidon2_B_51_1); - polys.poseidon2_B_51_2.set_if_valid_index(i, rows[i].poseidon2_B_51_2); - polys.poseidon2_B_51_3.set_if_valid_index(i, rows[i].poseidon2_B_51_3); - polys.poseidon2_B_52_0.set_if_valid_index(i, rows[i].poseidon2_B_52_0); - polys.poseidon2_B_52_1.set_if_valid_index(i, rows[i].poseidon2_B_52_1); - polys.poseidon2_B_52_2.set_if_valid_index(i, rows[i].poseidon2_B_52_2); - polys.poseidon2_B_52_3.set_if_valid_index(i, rows[i].poseidon2_B_52_3); - polys.poseidon2_B_53_0.set_if_valid_index(i, rows[i].poseidon2_B_53_0); - polys.poseidon2_B_53_1.set_if_valid_index(i, rows[i].poseidon2_B_53_1); - polys.poseidon2_B_53_2.set_if_valid_index(i, rows[i].poseidon2_B_53_2); - polys.poseidon2_B_53_3.set_if_valid_index(i, rows[i].poseidon2_B_53_3); - polys.poseidon2_B_54_0.set_if_valid_index(i, rows[i].poseidon2_B_54_0); - polys.poseidon2_B_54_1.set_if_valid_index(i, rows[i].poseidon2_B_54_1); - polys.poseidon2_B_54_2.set_if_valid_index(i, rows[i].poseidon2_B_54_2); - polys.poseidon2_B_54_3.set_if_valid_index(i, rows[i].poseidon2_B_54_3); - polys.poseidon2_B_55_0.set_if_valid_index(i, rows[i].poseidon2_B_55_0); - polys.poseidon2_B_55_1.set_if_valid_index(i, rows[i].poseidon2_B_55_1); - polys.poseidon2_B_55_2.set_if_valid_index(i, rows[i].poseidon2_B_55_2); - polys.poseidon2_B_55_3.set_if_valid_index(i, rows[i].poseidon2_B_55_3); - polys.poseidon2_B_56_0.set_if_valid_index(i, rows[i].poseidon2_B_56_0); - polys.poseidon2_B_56_1.set_if_valid_index(i, rows[i].poseidon2_B_56_1); - polys.poseidon2_B_56_2.set_if_valid_index(i, rows[i].poseidon2_B_56_2); - polys.poseidon2_B_56_3.set_if_valid_index(i, rows[i].poseidon2_B_56_3); - polys.poseidon2_B_57_0.set_if_valid_index(i, rows[i].poseidon2_B_57_0); - polys.poseidon2_B_57_1.set_if_valid_index(i, rows[i].poseidon2_B_57_1); - polys.poseidon2_B_57_2.set_if_valid_index(i, rows[i].poseidon2_B_57_2); - polys.poseidon2_B_57_3.set_if_valid_index(i, rows[i].poseidon2_B_57_3); - polys.poseidon2_B_58_0.set_if_valid_index(i, rows[i].poseidon2_B_58_0); - polys.poseidon2_B_58_1.set_if_valid_index(i, rows[i].poseidon2_B_58_1); - polys.poseidon2_B_58_2.set_if_valid_index(i, rows[i].poseidon2_B_58_2); - polys.poseidon2_B_58_3.set_if_valid_index(i, rows[i].poseidon2_B_58_3); - polys.poseidon2_B_59_0.set_if_valid_index(i, rows[i].poseidon2_B_59_0); - polys.poseidon2_B_59_1.set_if_valid_index(i, rows[i].poseidon2_B_59_1); - polys.poseidon2_B_59_2.set_if_valid_index(i, rows[i].poseidon2_B_59_2); - polys.poseidon2_B_59_3.set_if_valid_index(i, rows[i].poseidon2_B_59_3); - polys.poseidon2_B_5_0.set_if_valid_index(i, rows[i].poseidon2_B_5_0); - polys.poseidon2_B_5_1.set_if_valid_index(i, rows[i].poseidon2_B_5_1); - polys.poseidon2_B_5_2.set_if_valid_index(i, rows[i].poseidon2_B_5_2); - polys.poseidon2_B_5_3.set_if_valid_index(i, rows[i].poseidon2_B_5_3); - polys.poseidon2_B_6_0.set_if_valid_index(i, rows[i].poseidon2_B_6_0); - polys.poseidon2_B_6_1.set_if_valid_index(i, rows[i].poseidon2_B_6_1); - polys.poseidon2_B_6_2.set_if_valid_index(i, rows[i].poseidon2_B_6_2); - polys.poseidon2_B_6_3.set_if_valid_index(i, rows[i].poseidon2_B_6_3); - polys.poseidon2_B_7_0.set_if_valid_index(i, rows[i].poseidon2_B_7_0); - polys.poseidon2_B_7_1.set_if_valid_index(i, rows[i].poseidon2_B_7_1); - polys.poseidon2_B_7_2.set_if_valid_index(i, rows[i].poseidon2_B_7_2); - polys.poseidon2_B_7_3.set_if_valid_index(i, rows[i].poseidon2_B_7_3); - polys.poseidon2_B_8_0.set_if_valid_index(i, rows[i].poseidon2_B_8_0); - polys.poseidon2_B_8_1.set_if_valid_index(i, rows[i].poseidon2_B_8_1); - polys.poseidon2_B_8_2.set_if_valid_index(i, rows[i].poseidon2_B_8_2); - polys.poseidon2_B_8_3.set_if_valid_index(i, rows[i].poseidon2_B_8_3); - polys.poseidon2_B_9_0.set_if_valid_index(i, rows[i].poseidon2_B_9_0); - polys.poseidon2_B_9_1.set_if_valid_index(i, rows[i].poseidon2_B_9_1); - polys.poseidon2_B_9_2.set_if_valid_index(i, rows[i].poseidon2_B_9_2); - polys.poseidon2_B_9_3.set_if_valid_index(i, rows[i].poseidon2_B_9_3); - polys.poseidon2_EXT_LAYER_4.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_4); - polys.poseidon2_EXT_LAYER_5.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_5); - polys.poseidon2_EXT_LAYER_6.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_6); - polys.poseidon2_EXT_LAYER_7.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_7); - polys.poseidon2_T_0_4.set_if_valid_index(i, rows[i].poseidon2_T_0_4); - polys.poseidon2_T_0_5.set_if_valid_index(i, rows[i].poseidon2_T_0_5); - polys.poseidon2_T_0_6.set_if_valid_index(i, rows[i].poseidon2_T_0_6); - polys.poseidon2_T_0_7.set_if_valid_index(i, rows[i].poseidon2_T_0_7); - polys.poseidon2_T_1_4.set_if_valid_index(i, rows[i].poseidon2_T_1_4); - polys.poseidon2_T_1_5.set_if_valid_index(i, rows[i].poseidon2_T_1_5); - polys.poseidon2_T_1_6.set_if_valid_index(i, rows[i].poseidon2_T_1_6); - polys.poseidon2_T_1_7.set_if_valid_index(i, rows[i].poseidon2_T_1_7); - polys.poseidon2_T_2_4.set_if_valid_index(i, rows[i].poseidon2_T_2_4); - polys.poseidon2_T_2_5.set_if_valid_index(i, rows[i].poseidon2_T_2_5); - polys.poseidon2_T_2_6.set_if_valid_index(i, rows[i].poseidon2_T_2_6); - polys.poseidon2_T_2_7.set_if_valid_index(i, rows[i].poseidon2_T_2_7); - polys.poseidon2_T_3_4.set_if_valid_index(i, rows[i].poseidon2_T_3_4); - polys.poseidon2_T_3_5.set_if_valid_index(i, rows[i].poseidon2_T_3_5); - polys.poseidon2_T_3_6.set_if_valid_index(i, rows[i].poseidon2_T_3_6); - polys.poseidon2_T_3_7.set_if_valid_index(i, rows[i].poseidon2_T_3_7); - polys.poseidon2_T_60_4.set_if_valid_index(i, rows[i].poseidon2_T_60_4); - polys.poseidon2_T_60_5.set_if_valid_index(i, rows[i].poseidon2_T_60_5); - polys.poseidon2_T_60_6.set_if_valid_index(i, rows[i].poseidon2_T_60_6); - polys.poseidon2_T_60_7.set_if_valid_index(i, rows[i].poseidon2_T_60_7); - polys.poseidon2_T_61_4.set_if_valid_index(i, rows[i].poseidon2_T_61_4); - polys.poseidon2_T_61_5.set_if_valid_index(i, rows[i].poseidon2_T_61_5); - polys.poseidon2_T_61_6.set_if_valid_index(i, rows[i].poseidon2_T_61_6); - polys.poseidon2_T_61_7.set_if_valid_index(i, rows[i].poseidon2_T_61_7); - polys.poseidon2_T_62_4.set_if_valid_index(i, rows[i].poseidon2_T_62_4); - polys.poseidon2_T_62_5.set_if_valid_index(i, rows[i].poseidon2_T_62_5); - polys.poseidon2_T_62_6.set_if_valid_index(i, rows[i].poseidon2_T_62_6); - polys.poseidon2_T_62_7.set_if_valid_index(i, rows[i].poseidon2_T_62_7); - polys.poseidon2_T_63_4.set_if_valid_index(i, rows[i].poseidon2_T_63_4); - polys.poseidon2_T_63_5.set_if_valid_index(i, rows[i].poseidon2_T_63_5); - polys.poseidon2_T_63_6.set_if_valid_index(i, rows[i].poseidon2_T_63_6); - polys.poseidon2_T_63_7.set_if_valid_index(i, rows[i].poseidon2_T_63_7); - polys.poseidon2_a_0.set_if_valid_index(i, rows[i].poseidon2_a_0); - polys.poseidon2_a_1.set_if_valid_index(i, rows[i].poseidon2_a_1); - polys.poseidon2_a_2.set_if_valid_index(i, rows[i].poseidon2_a_2); - polys.poseidon2_a_3.set_if_valid_index(i, rows[i].poseidon2_a_3); - polys.poseidon2_b_0.set_if_valid_index(i, rows[i].poseidon2_b_0); - polys.poseidon2_b_1.set_if_valid_index(i, rows[i].poseidon2_b_1); - polys.poseidon2_b_2.set_if_valid_index(i, rows[i].poseidon2_b_2); - polys.poseidon2_b_3.set_if_valid_index(i, rows[i].poseidon2_b_3); - polys.poseidon2_clk.set_if_valid_index(i, rows[i].poseidon2_clk); - polys.poseidon2_input_addr.set_if_valid_index(i, rows[i].poseidon2_input_addr); - polys.poseidon2_mem_addr_read_a.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_a); - polys.poseidon2_mem_addr_read_b.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_b); - polys.poseidon2_mem_addr_read_c.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_c); - polys.poseidon2_mem_addr_read_d.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_d); - polys.poseidon2_mem_addr_write_a.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_a); - polys.poseidon2_mem_addr_write_b.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_b); - polys.poseidon2_mem_addr_write_c.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_c); - polys.poseidon2_mem_addr_write_d.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_d); - polys.poseidon2_output_addr.set_if_valid_index(i, rows[i].poseidon2_output_addr); - polys.poseidon2_sel_poseidon_perm.set_if_valid_index(i, rows[i].poseidon2_sel_poseidon_perm); - polys.range_check_alu_rng_chk.set_if_valid_index(i, rows[i].range_check_alu_rng_chk); - polys.range_check_clk.set_if_valid_index(i, rows[i].range_check_clk); - polys.range_check_cmp_hi_bits_rng_chk.set_if_valid_index(i, rows[i].range_check_cmp_hi_bits_rng_chk); - polys.range_check_cmp_lo_bits_rng_chk.set_if_valid_index(i, rows[i].range_check_cmp_lo_bits_rng_chk); - polys.range_check_dyn_diff.set_if_valid_index(i, rows[i].range_check_dyn_diff); - polys.range_check_dyn_rng_chk_bits.set_if_valid_index(i, rows[i].range_check_dyn_rng_chk_bits); - polys.range_check_dyn_rng_chk_pow_2.set_if_valid_index(i, rows[i].range_check_dyn_rng_chk_pow_2); - polys.range_check_gas_da_rng_chk.set_if_valid_index(i, rows[i].range_check_gas_da_rng_chk); - polys.range_check_gas_l2_rng_chk.set_if_valid_index(i, rows[i].range_check_gas_l2_rng_chk); - polys.range_check_is_lte_u112.set_if_valid_index(i, rows[i].range_check_is_lte_u112); - polys.range_check_is_lte_u128.set_if_valid_index(i, rows[i].range_check_is_lte_u128); - polys.range_check_is_lte_u16.set_if_valid_index(i, rows[i].range_check_is_lte_u16); - polys.range_check_is_lte_u32.set_if_valid_index(i, rows[i].range_check_is_lte_u32); - polys.range_check_is_lte_u48.set_if_valid_index(i, rows[i].range_check_is_lte_u48); - polys.range_check_is_lte_u64.set_if_valid_index(i, rows[i].range_check_is_lte_u64); - polys.range_check_is_lte_u80.set_if_valid_index(i, rows[i].range_check_is_lte_u80); - polys.range_check_is_lte_u96.set_if_valid_index(i, rows[i].range_check_is_lte_u96); - polys.range_check_mem_rng_chk.set_if_valid_index(i, rows[i].range_check_mem_rng_chk); - polys.range_check_rng_chk_bits.set_if_valid_index(i, rows[i].range_check_rng_chk_bits); - polys.range_check_sel_lookup_0.set_if_valid_index(i, rows[i].range_check_sel_lookup_0); - polys.range_check_sel_lookup_1.set_if_valid_index(i, rows[i].range_check_sel_lookup_1); - polys.range_check_sel_lookup_2.set_if_valid_index(i, rows[i].range_check_sel_lookup_2); - polys.range_check_sel_lookup_3.set_if_valid_index(i, rows[i].range_check_sel_lookup_3); - polys.range_check_sel_lookup_4.set_if_valid_index(i, rows[i].range_check_sel_lookup_4); - polys.range_check_sel_lookup_5.set_if_valid_index(i, rows[i].range_check_sel_lookup_5); - polys.range_check_sel_lookup_6.set_if_valid_index(i, rows[i].range_check_sel_lookup_6); - polys.range_check_sel_rng_chk.set_if_valid_index(i, rows[i].range_check_sel_rng_chk); - polys.range_check_u16_r0.set_if_valid_index(i, rows[i].range_check_u16_r0); - polys.range_check_u16_r1.set_if_valid_index(i, rows[i].range_check_u16_r1); - polys.range_check_u16_r2.set_if_valid_index(i, rows[i].range_check_u16_r2); - polys.range_check_u16_r3.set_if_valid_index(i, rows[i].range_check_u16_r3); - polys.range_check_u16_r4.set_if_valid_index(i, rows[i].range_check_u16_r4); - polys.range_check_u16_r5.set_if_valid_index(i, rows[i].range_check_u16_r5); - polys.range_check_u16_r6.set_if_valid_index(i, rows[i].range_check_u16_r6); - polys.range_check_u16_r7.set_if_valid_index(i, rows[i].range_check_u16_r7); - polys.range_check_value.set_if_valid_index(i, rows[i].range_check_value); - polys.sha256_clk.set_if_valid_index(i, rows[i].sha256_clk); - polys.sha256_input.set_if_valid_index(i, rows[i].sha256_input); - polys.sha256_output.set_if_valid_index(i, rows[i].sha256_output); - polys.sha256_sel_sha256_compression.set_if_valid_index(i, rows[i].sha256_sel_sha256_compression); - polys.sha256_state.set_if_valid_index(i, rows[i].sha256_state); - polys.slice_addr.set_if_valid_index(i, rows[i].slice_addr); - polys.slice_clk.set_if_valid_index(i, rows[i].slice_clk); - polys.slice_cnt.set_if_valid_index(i, rows[i].slice_cnt); - polys.slice_col_offset.set_if_valid_index(i, rows[i].slice_col_offset); - polys.slice_one_min_inv.set_if_valid_index(i, rows[i].slice_one_min_inv); - polys.slice_sel_cd_cpy.set_if_valid_index(i, rows[i].slice_sel_cd_cpy); - polys.slice_sel_mem_active.set_if_valid_index(i, rows[i].slice_sel_mem_active); - polys.slice_sel_return.set_if_valid_index(i, rows[i].slice_sel_return); - polys.slice_sel_start.set_if_valid_index(i, rows[i].slice_sel_start); - polys.slice_space_id.set_if_valid_index(i, rows[i].slice_space_id); - polys.slice_val.set_if_valid_index(i, rows[i].slice_val); - polys.lookup_rng_chk_pow_2_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_pow_2_counts); - polys.lookup_rng_chk_diff_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_diff_counts); - polys.lookup_rng_chk_0_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_0_counts); - polys.lookup_rng_chk_1_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_1_counts); - polys.lookup_rng_chk_2_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_2_counts); - polys.lookup_rng_chk_3_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_3_counts); - polys.lookup_rng_chk_4_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_4_counts); - polys.lookup_rng_chk_5_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_5_counts); - polys.lookup_rng_chk_6_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_6_counts); - polys.lookup_rng_chk_7_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_7_counts); - polys.lookup_pow_2_0_counts.set_if_valid_index(i, rows[i].lookup_pow_2_0_counts); - polys.lookup_pow_2_1_counts.set_if_valid_index(i, rows[i].lookup_pow_2_1_counts); - polys.lookup_byte_lengths_counts.set_if_valid_index(i, rows[i].lookup_byte_lengths_counts); - polys.lookup_byte_operations_counts.set_if_valid_index(i, rows[i].lookup_byte_operations_counts); - polys.lookup_opcode_gas_counts.set_if_valid_index(i, rows[i].lookup_opcode_gas_counts); - polys.kernel_output_lookup_counts.set_if_valid_index(i, rows[i].kernel_output_lookup_counts); - polys.lookup_into_kernel_counts.set_if_valid_index(i, rows[i].lookup_into_kernel_counts); - polys.lookup_cd_value_counts.set_if_valid_index(i, rows[i].lookup_cd_value_counts); - polys.lookup_ret_value_counts.set_if_valid_index(i, rows[i].lookup_ret_value_counts); - polys.incl_main_tag_err_counts.set_if_valid_index(i, rows[i].incl_main_tag_err_counts); - polys.incl_mem_tag_err_counts.set_if_valid_index(i, rows[i].incl_mem_tag_err_counts); - } + AVM_TRACK_TIME( + "circuit_builder/set_polys_unshifted", ({ + bb::parallel_for(rows.size(), [&](size_t i) { + polys.byte_lookup_sel_bin.set_if_valid_index(i, rows[i].byte_lookup_sel_bin); + polys.byte_lookup_table_byte_lengths.set_if_valid_index(i, rows[i].byte_lookup_table_byte_lengths); + polys.byte_lookup_table_in_tags.set_if_valid_index(i, rows[i].byte_lookup_table_in_tags); + polys.byte_lookup_table_input_a.set_if_valid_index(i, rows[i].byte_lookup_table_input_a); + polys.byte_lookup_table_input_b.set_if_valid_index(i, rows[i].byte_lookup_table_input_b); + polys.byte_lookup_table_op_id.set_if_valid_index(i, rows[i].byte_lookup_table_op_id); + polys.byte_lookup_table_output.set_if_valid_index(i, rows[i].byte_lookup_table_output); + polys.gas_base_da_gas_fixed_table.set_if_valid_index(i, rows[i].gas_base_da_gas_fixed_table); + polys.gas_base_l2_gas_fixed_table.set_if_valid_index(i, rows[i].gas_base_l2_gas_fixed_table); + polys.gas_dyn_da_gas_fixed_table.set_if_valid_index(i, rows[i].gas_dyn_da_gas_fixed_table); + polys.gas_dyn_l2_gas_fixed_table.set_if_valid_index(i, rows[i].gas_dyn_l2_gas_fixed_table); + polys.gas_sel_gas_cost.set_if_valid_index(i, rows[i].gas_sel_gas_cost); + polys.main_clk.set_if_valid_index(i, rows[i].main_clk); + polys.main_sel_first.set_if_valid_index(i, rows[i].main_sel_first); + polys.main_zeroes.set_if_valid_index(i, rows[i].main_zeroes); + polys.powers_power_of_2.set_if_valid_index(i, rows[i].powers_power_of_2); + polys.main_kernel_inputs.set_if_valid_index(i, rows[i].main_kernel_inputs); + polys.main_kernel_value_out.set_if_valid_index(i, rows[i].main_kernel_value_out); + polys.main_kernel_side_effect_out.set_if_valid_index(i, rows[i].main_kernel_side_effect_out); + polys.main_kernel_metadata_out.set_if_valid_index(i, rows[i].main_kernel_metadata_out); + polys.main_calldata.set_if_valid_index(i, rows[i].main_calldata); + polys.main_returndata.set_if_valid_index(i, rows[i].main_returndata); + polys.alu_a_hi.set_if_valid_index(i, rows[i].alu_a_hi); + polys.alu_a_lo.set_if_valid_index(i, rows[i].alu_a_lo); + polys.alu_b_hi.set_if_valid_index(i, rows[i].alu_b_hi); + polys.alu_b_lo.set_if_valid_index(i, rows[i].alu_b_lo); + polys.alu_b_pow.set_if_valid_index(i, rows[i].alu_b_pow); + polys.alu_c_hi.set_if_valid_index(i, rows[i].alu_c_hi); + polys.alu_c_lo.set_if_valid_index(i, rows[i].alu_c_lo); + polys.alu_cf.set_if_valid_index(i, rows[i].alu_cf); + polys.alu_clk.set_if_valid_index(i, rows[i].alu_clk); + polys.alu_cmp_gadget_gt.set_if_valid_index(i, rows[i].alu_cmp_gadget_gt); + polys.alu_cmp_gadget_input_a.set_if_valid_index(i, rows[i].alu_cmp_gadget_input_a); + polys.alu_cmp_gadget_input_b.set_if_valid_index(i, rows[i].alu_cmp_gadget_input_b); + polys.alu_cmp_gadget_result.set_if_valid_index(i, rows[i].alu_cmp_gadget_result); + polys.alu_cmp_gadget_sel.set_if_valid_index(i, rows[i].alu_cmp_gadget_sel); + polys.alu_ff_tag.set_if_valid_index(i, rows[i].alu_ff_tag); + polys.alu_ia.set_if_valid_index(i, rows[i].alu_ia); + polys.alu_ib.set_if_valid_index(i, rows[i].alu_ib); + polys.alu_ic.set_if_valid_index(i, rows[i].alu_ic); + polys.alu_in_tag.set_if_valid_index(i, rows[i].alu_in_tag); + polys.alu_max_bits_sub_b_bits.set_if_valid_index(i, rows[i].alu_max_bits_sub_b_bits); + polys.alu_max_bits_sub_b_pow.set_if_valid_index(i, rows[i].alu_max_bits_sub_b_pow); + polys.alu_op_add.set_if_valid_index(i, rows[i].alu_op_add); + polys.alu_op_cast.set_if_valid_index(i, rows[i].alu_op_cast); + polys.alu_op_div.set_if_valid_index(i, rows[i].alu_op_div); + polys.alu_op_eq.set_if_valid_index(i, rows[i].alu_op_eq); + polys.alu_op_lt.set_if_valid_index(i, rows[i].alu_op_lt); + polys.alu_op_lte.set_if_valid_index(i, rows[i].alu_op_lte); + polys.alu_op_mul.set_if_valid_index(i, rows[i].alu_op_mul); + polys.alu_op_not.set_if_valid_index(i, rows[i].alu_op_not); + polys.alu_op_shl.set_if_valid_index(i, rows[i].alu_op_shl); + polys.alu_op_shr.set_if_valid_index(i, rows[i].alu_op_shr); + polys.alu_op_sub.set_if_valid_index(i, rows[i].alu_op_sub); + polys.alu_partial_prod_hi.set_if_valid_index(i, rows[i].alu_partial_prod_hi); + polys.alu_partial_prod_lo.set_if_valid_index(i, rows[i].alu_partial_prod_lo); + polys.alu_range_check_input_value.set_if_valid_index(i, rows[i].alu_range_check_input_value); + polys.alu_range_check_num_bits.set_if_valid_index(i, rows[i].alu_range_check_num_bits); + polys.alu_range_check_sel.set_if_valid_index(i, rows[i].alu_range_check_sel); + polys.alu_remainder.set_if_valid_index(i, rows[i].alu_remainder); + polys.alu_sel_alu.set_if_valid_index(i, rows[i].alu_sel_alu); + polys.alu_sel_cmp.set_if_valid_index(i, rows[i].alu_sel_cmp); + polys.alu_sel_shift_which.set_if_valid_index(i, rows[i].alu_sel_shift_which); + polys.alu_u128_tag.set_if_valid_index(i, rows[i].alu_u128_tag); + polys.alu_u16_tag.set_if_valid_index(i, rows[i].alu_u16_tag); + polys.alu_u32_tag.set_if_valid_index(i, rows[i].alu_u32_tag); + polys.alu_u64_tag.set_if_valid_index(i, rows[i].alu_u64_tag); + polys.alu_u8_tag.set_if_valid_index(i, rows[i].alu_u8_tag); + polys.alu_zero_shift.set_if_valid_index(i, rows[i].alu_zero_shift); + polys.binary_acc_ia.set_if_valid_index(i, rows[i].binary_acc_ia); + polys.binary_acc_ib.set_if_valid_index(i, rows[i].binary_acc_ib); + polys.binary_acc_ic.set_if_valid_index(i, rows[i].binary_acc_ic); + polys.binary_clk.set_if_valid_index(i, rows[i].binary_clk); + polys.binary_ia_bytes.set_if_valid_index(i, rows[i].binary_ia_bytes); + polys.binary_ib_bytes.set_if_valid_index(i, rows[i].binary_ib_bytes); + polys.binary_ic_bytes.set_if_valid_index(i, rows[i].binary_ic_bytes); + polys.binary_in_tag.set_if_valid_index(i, rows[i].binary_in_tag); + polys.binary_mem_tag_ctr.set_if_valid_index(i, rows[i].binary_mem_tag_ctr); + polys.binary_mem_tag_ctr_inv.set_if_valid_index(i, rows[i].binary_mem_tag_ctr_inv); + polys.binary_op_id.set_if_valid_index(i, rows[i].binary_op_id); + polys.binary_sel_bin.set_if_valid_index(i, rows[i].binary_sel_bin); + polys.binary_start.set_if_valid_index(i, rows[i].binary_start); + polys.cmp_a_hi.set_if_valid_index(i, rows[i].cmp_a_hi); + polys.cmp_a_lo.set_if_valid_index(i, rows[i].cmp_a_lo); + polys.cmp_b_hi.set_if_valid_index(i, rows[i].cmp_b_hi); + polys.cmp_b_lo.set_if_valid_index(i, rows[i].cmp_b_lo); + polys.cmp_borrow.set_if_valid_index(i, rows[i].cmp_borrow); + polys.cmp_clk.set_if_valid_index(i, rows[i].cmp_clk); + polys.cmp_cmp_rng_ctr.set_if_valid_index(i, rows[i].cmp_cmp_rng_ctr); + polys.cmp_input_a.set_if_valid_index(i, rows[i].cmp_input_a); + polys.cmp_input_b.set_if_valid_index(i, rows[i].cmp_input_b); + polys.cmp_op_eq.set_if_valid_index(i, rows[i].cmp_op_eq); + polys.cmp_op_eq_diff_inv.set_if_valid_index(i, rows[i].cmp_op_eq_diff_inv); + polys.cmp_op_gt.set_if_valid_index(i, rows[i].cmp_op_gt); + polys.cmp_p_a_borrow.set_if_valid_index(i, rows[i].cmp_p_a_borrow); + polys.cmp_p_b_borrow.set_if_valid_index(i, rows[i].cmp_p_b_borrow); + polys.cmp_p_sub_a_hi.set_if_valid_index(i, rows[i].cmp_p_sub_a_hi); + polys.cmp_p_sub_a_lo.set_if_valid_index(i, rows[i].cmp_p_sub_a_lo); + polys.cmp_p_sub_b_hi.set_if_valid_index(i, rows[i].cmp_p_sub_b_hi); + polys.cmp_p_sub_b_lo.set_if_valid_index(i, rows[i].cmp_p_sub_b_lo); + polys.cmp_range_chk_clk.set_if_valid_index(i, rows[i].cmp_range_chk_clk); + polys.cmp_res_hi.set_if_valid_index(i, rows[i].cmp_res_hi); + polys.cmp_res_lo.set_if_valid_index(i, rows[i].cmp_res_lo); + polys.cmp_result.set_if_valid_index(i, rows[i].cmp_result); + polys.cmp_sel_cmp.set_if_valid_index(i, rows[i].cmp_sel_cmp); + polys.cmp_sel_rng_chk.set_if_valid_index(i, rows[i].cmp_sel_rng_chk); + polys.cmp_shift_sel.set_if_valid_index(i, rows[i].cmp_shift_sel); + polys.conversion_clk.set_if_valid_index(i, rows[i].conversion_clk); + polys.conversion_input.set_if_valid_index(i, rows[i].conversion_input); + polys.conversion_num_limbs.set_if_valid_index(i, rows[i].conversion_num_limbs); + polys.conversion_radix.set_if_valid_index(i, rows[i].conversion_radix); + polys.conversion_sel_to_radix_le.set_if_valid_index(i, rows[i].conversion_sel_to_radix_le); + polys.keccakf1600_clk.set_if_valid_index(i, rows[i].keccakf1600_clk); + polys.keccakf1600_input.set_if_valid_index(i, rows[i].keccakf1600_input); + polys.keccakf1600_output.set_if_valid_index(i, rows[i].keccakf1600_output); + polys.keccakf1600_sel_keccakf1600.set_if_valid_index(i, rows[i].keccakf1600_sel_keccakf1600); + polys.main_abs_da_rem_gas.set_if_valid_index(i, rows[i].main_abs_da_rem_gas); + polys.main_abs_l2_rem_gas.set_if_valid_index(i, rows[i].main_abs_l2_rem_gas); + polys.main_alu_in_tag.set_if_valid_index(i, rows[i].main_alu_in_tag); + polys.main_base_da_gas_op_cost.set_if_valid_index(i, rows[i].main_base_da_gas_op_cost); + polys.main_base_l2_gas_op_cost.set_if_valid_index(i, rows[i].main_base_l2_gas_op_cost); + polys.main_bin_op_id.set_if_valid_index(i, rows[i].main_bin_op_id); + polys.main_call_ptr.set_if_valid_index(i, rows[i].main_call_ptr); + polys.main_da_gas_remaining.set_if_valid_index(i, rows[i].main_da_gas_remaining); + polys.main_da_out_of_gas.set_if_valid_index(i, rows[i].main_da_out_of_gas); + polys.main_dyn_da_gas_op_cost.set_if_valid_index(i, rows[i].main_dyn_da_gas_op_cost); + polys.main_dyn_gas_multiplier.set_if_valid_index(i, rows[i].main_dyn_gas_multiplier); + polys.main_dyn_l2_gas_op_cost.set_if_valid_index(i, rows[i].main_dyn_l2_gas_op_cost); + polys.main_emit_l2_to_l1_msg_write_offset.set_if_valid_index( + i, rows[i].main_emit_l2_to_l1_msg_write_offset); + polys.main_emit_note_hash_write_offset.set_if_valid_index(i, rows[i].main_emit_note_hash_write_offset); + polys.main_emit_nullifier_write_offset.set_if_valid_index(i, rows[i].main_emit_nullifier_write_offset); + polys.main_emit_unencrypted_log_write_offset.set_if_valid_index( + i, rows[i].main_emit_unencrypted_log_write_offset); + polys.main_ia.set_if_valid_index(i, rows[i].main_ia); + polys.main_ib.set_if_valid_index(i, rows[i].main_ib); + polys.main_ic.set_if_valid_index(i, rows[i].main_ic); + polys.main_id.set_if_valid_index(i, rows[i].main_id); + polys.main_id_zero.set_if_valid_index(i, rows[i].main_id_zero); + polys.main_ind_addr_a.set_if_valid_index(i, rows[i].main_ind_addr_a); + polys.main_ind_addr_b.set_if_valid_index(i, rows[i].main_ind_addr_b); + polys.main_ind_addr_c.set_if_valid_index(i, rows[i].main_ind_addr_c); + polys.main_ind_addr_d.set_if_valid_index(i, rows[i].main_ind_addr_d); + polys.main_internal_return_ptr.set_if_valid_index(i, rows[i].main_internal_return_ptr); + polys.main_inv.set_if_valid_index(i, rows[i].main_inv); + polys.main_kernel_in_offset.set_if_valid_index(i, rows[i].main_kernel_in_offset); + polys.main_kernel_out_offset.set_if_valid_index(i, rows[i].main_kernel_out_offset); + polys.main_l1_to_l2_msg_exists_write_offset.set_if_valid_index( + i, rows[i].main_l1_to_l2_msg_exists_write_offset); + polys.main_l2_gas_remaining.set_if_valid_index(i, rows[i].main_l2_gas_remaining); + polys.main_l2_out_of_gas.set_if_valid_index(i, rows[i].main_l2_out_of_gas); + polys.main_mem_addr_a.set_if_valid_index(i, rows[i].main_mem_addr_a); + polys.main_mem_addr_b.set_if_valid_index(i, rows[i].main_mem_addr_b); + polys.main_mem_addr_c.set_if_valid_index(i, rows[i].main_mem_addr_c); + polys.main_mem_addr_d.set_if_valid_index(i, rows[i].main_mem_addr_d); + polys.main_note_hash_exist_write_offset.set_if_valid_index(i, + rows[i].main_note_hash_exist_write_offset); + polys.main_nullifier_exists_write_offset.set_if_valid_index(i, + rows[i].main_nullifier_exists_write_offset); + polys.main_nullifier_non_exists_write_offset.set_if_valid_index( + i, rows[i].main_nullifier_non_exists_write_offset); + polys.main_op_err.set_if_valid_index(i, rows[i].main_op_err); + polys.main_opcode_val.set_if_valid_index(i, rows[i].main_opcode_val); + polys.main_pc.set_if_valid_index(i, rows[i].main_pc); + polys.main_r_in_tag.set_if_valid_index(i, rows[i].main_r_in_tag); + polys.main_rwa.set_if_valid_index(i, rows[i].main_rwa); + polys.main_rwb.set_if_valid_index(i, rows[i].main_rwb); + polys.main_rwc.set_if_valid_index(i, rows[i].main_rwc); + polys.main_rwd.set_if_valid_index(i, rows[i].main_rwd); + polys.main_sel_alu.set_if_valid_index(i, rows[i].main_sel_alu); + polys.main_sel_bin.set_if_valid_index(i, rows[i].main_sel_bin); + polys.main_sel_calldata.set_if_valid_index(i, rows[i].main_sel_calldata); + polys.main_sel_execution_row.set_if_valid_index(i, rows[i].main_sel_execution_row); + polys.main_sel_kernel_inputs.set_if_valid_index(i, rows[i].main_sel_kernel_inputs); + polys.main_sel_kernel_out.set_if_valid_index(i, rows[i].main_sel_kernel_out); + polys.main_sel_last.set_if_valid_index(i, rows[i].main_sel_last); + polys.main_sel_mem_op_a.set_if_valid_index(i, rows[i].main_sel_mem_op_a); + polys.main_sel_mem_op_b.set_if_valid_index(i, rows[i].main_sel_mem_op_b); + polys.main_sel_mem_op_c.set_if_valid_index(i, rows[i].main_sel_mem_op_c); + polys.main_sel_mem_op_d.set_if_valid_index(i, rows[i].main_sel_mem_op_d); + polys.main_sel_mov_ia_to_ic.set_if_valid_index(i, rows[i].main_sel_mov_ia_to_ic); + polys.main_sel_mov_ib_to_ic.set_if_valid_index(i, rows[i].main_sel_mov_ib_to_ic); + polys.main_sel_op_add.set_if_valid_index(i, rows[i].main_sel_op_add); + polys.main_sel_op_address.set_if_valid_index(i, rows[i].main_sel_op_address); + polys.main_sel_op_and.set_if_valid_index(i, rows[i].main_sel_op_and); + polys.main_sel_op_block_number.set_if_valid_index(i, rows[i].main_sel_op_block_number); + polys.main_sel_op_calldata_copy.set_if_valid_index(i, rows[i].main_sel_op_calldata_copy); + polys.main_sel_op_cast.set_if_valid_index(i, rows[i].main_sel_op_cast); + polys.main_sel_op_chain_id.set_if_valid_index(i, rows[i].main_sel_op_chain_id); + polys.main_sel_op_cmov.set_if_valid_index(i, rows[i].main_sel_op_cmov); + polys.main_sel_op_dagasleft.set_if_valid_index(i, rows[i].main_sel_op_dagasleft); + polys.main_sel_op_div.set_if_valid_index(i, rows[i].main_sel_op_div); + polys.main_sel_op_ecadd.set_if_valid_index(i, rows[i].main_sel_op_ecadd); + polys.main_sel_op_emit_l2_to_l1_msg.set_if_valid_index(i, rows[i].main_sel_op_emit_l2_to_l1_msg); + polys.main_sel_op_emit_note_hash.set_if_valid_index(i, rows[i].main_sel_op_emit_note_hash); + polys.main_sel_op_emit_nullifier.set_if_valid_index(i, rows[i].main_sel_op_emit_nullifier); + polys.main_sel_op_emit_unencrypted_log.set_if_valid_index(i, rows[i].main_sel_op_emit_unencrypted_log); + polys.main_sel_op_eq.set_if_valid_index(i, rows[i].main_sel_op_eq); + polys.main_sel_op_external_call.set_if_valid_index(i, rows[i].main_sel_op_external_call); + polys.main_sel_op_external_return.set_if_valid_index(i, rows[i].main_sel_op_external_return); + polys.main_sel_op_external_revert.set_if_valid_index(i, rows[i].main_sel_op_external_revert); + polys.main_sel_op_fdiv.set_if_valid_index(i, rows[i].main_sel_op_fdiv); + polys.main_sel_op_fee_per_da_gas.set_if_valid_index(i, rows[i].main_sel_op_fee_per_da_gas); + polys.main_sel_op_fee_per_l2_gas.set_if_valid_index(i, rows[i].main_sel_op_fee_per_l2_gas); + polys.main_sel_op_function_selector.set_if_valid_index(i, rows[i].main_sel_op_function_selector); + polys.main_sel_op_get_contract_instance.set_if_valid_index(i, + rows[i].main_sel_op_get_contract_instance); + polys.main_sel_op_internal_call.set_if_valid_index(i, rows[i].main_sel_op_internal_call); + polys.main_sel_op_internal_return.set_if_valid_index(i, rows[i].main_sel_op_internal_return); + polys.main_sel_op_jump.set_if_valid_index(i, rows[i].main_sel_op_jump); + polys.main_sel_op_jumpi.set_if_valid_index(i, rows[i].main_sel_op_jumpi); + polys.main_sel_op_keccak.set_if_valid_index(i, rows[i].main_sel_op_keccak); + polys.main_sel_op_l1_to_l2_msg_exists.set_if_valid_index(i, rows[i].main_sel_op_l1_to_l2_msg_exists); + polys.main_sel_op_l2gasleft.set_if_valid_index(i, rows[i].main_sel_op_l2gasleft); + polys.main_sel_op_lt.set_if_valid_index(i, rows[i].main_sel_op_lt); + polys.main_sel_op_lte.set_if_valid_index(i, rows[i].main_sel_op_lte); + polys.main_sel_op_mov.set_if_valid_index(i, rows[i].main_sel_op_mov); + polys.main_sel_op_msm.set_if_valid_index(i, rows[i].main_sel_op_msm); + polys.main_sel_op_mul.set_if_valid_index(i, rows[i].main_sel_op_mul); + polys.main_sel_op_not.set_if_valid_index(i, rows[i].main_sel_op_not); + polys.main_sel_op_note_hash_exists.set_if_valid_index(i, rows[i].main_sel_op_note_hash_exists); + polys.main_sel_op_nullifier_exists.set_if_valid_index(i, rows[i].main_sel_op_nullifier_exists); + polys.main_sel_op_or.set_if_valid_index(i, rows[i].main_sel_op_or); + polys.main_sel_op_pedersen.set_if_valid_index(i, rows[i].main_sel_op_pedersen); + polys.main_sel_op_pedersen_commit.set_if_valid_index(i, rows[i].main_sel_op_pedersen_commit); + polys.main_sel_op_poseidon2.set_if_valid_index(i, rows[i].main_sel_op_poseidon2); + polys.main_sel_op_radix_le.set_if_valid_index(i, rows[i].main_sel_op_radix_le); + polys.main_sel_op_sender.set_if_valid_index(i, rows[i].main_sel_op_sender); + polys.main_sel_op_set.set_if_valid_index(i, rows[i].main_sel_op_set); + polys.main_sel_op_sha256.set_if_valid_index(i, rows[i].main_sel_op_sha256); + polys.main_sel_op_shl.set_if_valid_index(i, rows[i].main_sel_op_shl); + polys.main_sel_op_shr.set_if_valid_index(i, rows[i].main_sel_op_shr); + polys.main_sel_op_sload.set_if_valid_index(i, rows[i].main_sel_op_sload); + polys.main_sel_op_sstore.set_if_valid_index(i, rows[i].main_sel_op_sstore); + polys.main_sel_op_storage_address.set_if_valid_index(i, rows[i].main_sel_op_storage_address); + polys.main_sel_op_sub.set_if_valid_index(i, rows[i].main_sel_op_sub); + polys.main_sel_op_timestamp.set_if_valid_index(i, rows[i].main_sel_op_timestamp); + polys.main_sel_op_transaction_fee.set_if_valid_index(i, rows[i].main_sel_op_transaction_fee); + polys.main_sel_op_version.set_if_valid_index(i, rows[i].main_sel_op_version); + polys.main_sel_op_xor.set_if_valid_index(i, rows[i].main_sel_op_xor); + polys.main_sel_q_kernel_lookup.set_if_valid_index(i, rows[i].main_sel_q_kernel_lookup); + polys.main_sel_q_kernel_output_lookup.set_if_valid_index(i, rows[i].main_sel_q_kernel_output_lookup); + polys.main_sel_resolve_ind_addr_a.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_a); + polys.main_sel_resolve_ind_addr_b.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_b); + polys.main_sel_resolve_ind_addr_c.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_c); + polys.main_sel_resolve_ind_addr_d.set_if_valid_index(i, rows[i].main_sel_resolve_ind_addr_d); + polys.main_sel_returndata.set_if_valid_index(i, rows[i].main_sel_returndata); + polys.main_sel_rng_16.set_if_valid_index(i, rows[i].main_sel_rng_16); + polys.main_sel_rng_8.set_if_valid_index(i, rows[i].main_sel_rng_8); + polys.main_sel_slice_gadget.set_if_valid_index(i, rows[i].main_sel_slice_gadget); + polys.main_side_effect_counter.set_if_valid_index(i, rows[i].main_side_effect_counter); + polys.main_sload_write_offset.set_if_valid_index(i, rows[i].main_sload_write_offset); + polys.main_space_id.set_if_valid_index(i, rows[i].main_space_id); + polys.main_sstore_write_offset.set_if_valid_index(i, rows[i].main_sstore_write_offset); + polys.main_tag_err.set_if_valid_index(i, rows[i].main_tag_err); + polys.main_w_in_tag.set_if_valid_index(i, rows[i].main_w_in_tag); + polys.mem_addr.set_if_valid_index(i, rows[i].mem_addr); + polys.mem_clk.set_if_valid_index(i, rows[i].mem_clk); + polys.mem_diff.set_if_valid_index(i, rows[i].mem_diff); + polys.mem_glob_addr.set_if_valid_index(i, rows[i].mem_glob_addr); + polys.mem_last.set_if_valid_index(i, rows[i].mem_last); + polys.mem_lastAccess.set_if_valid_index(i, rows[i].mem_lastAccess); + polys.mem_one_min_inv.set_if_valid_index(i, rows[i].mem_one_min_inv); + polys.mem_r_in_tag.set_if_valid_index(i, rows[i].mem_r_in_tag); + polys.mem_rw.set_if_valid_index(i, rows[i].mem_rw); + polys.mem_sel_mem.set_if_valid_index(i, rows[i].mem_sel_mem); + polys.mem_sel_mov_ia_to_ic.set_if_valid_index(i, rows[i].mem_sel_mov_ia_to_ic); + polys.mem_sel_mov_ib_to_ic.set_if_valid_index(i, rows[i].mem_sel_mov_ib_to_ic); + polys.mem_sel_op_a.set_if_valid_index(i, rows[i].mem_sel_op_a); + polys.mem_sel_op_b.set_if_valid_index(i, rows[i].mem_sel_op_b); + polys.mem_sel_op_c.set_if_valid_index(i, rows[i].mem_sel_op_c); + polys.mem_sel_op_cmov.set_if_valid_index(i, rows[i].mem_sel_op_cmov); + polys.mem_sel_op_d.set_if_valid_index(i, rows[i].mem_sel_op_d); + polys.mem_sel_op_poseidon_read_a.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_a); + polys.mem_sel_op_poseidon_read_b.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_b); + polys.mem_sel_op_poseidon_read_c.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_c); + polys.mem_sel_op_poseidon_read_d.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_read_d); + polys.mem_sel_op_poseidon_write_a.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_a); + polys.mem_sel_op_poseidon_write_b.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_b); + polys.mem_sel_op_poseidon_write_c.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_c); + polys.mem_sel_op_poseidon_write_d.set_if_valid_index(i, rows[i].mem_sel_op_poseidon_write_d); + polys.mem_sel_op_slice.set_if_valid_index(i, rows[i].mem_sel_op_slice); + polys.mem_sel_resolve_ind_addr_a.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_a); + polys.mem_sel_resolve_ind_addr_b.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_b); + polys.mem_sel_resolve_ind_addr_c.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_c); + polys.mem_sel_resolve_ind_addr_d.set_if_valid_index(i, rows[i].mem_sel_resolve_ind_addr_d); + polys.mem_sel_rng_chk.set_if_valid_index(i, rows[i].mem_sel_rng_chk); + polys.mem_skip_check_tag.set_if_valid_index(i, rows[i].mem_skip_check_tag); + polys.mem_space_id.set_if_valid_index(i, rows[i].mem_space_id); + polys.mem_tag.set_if_valid_index(i, rows[i].mem_tag); + polys.mem_tag_err.set_if_valid_index(i, rows[i].mem_tag_err); + polys.mem_tsp.set_if_valid_index(i, rows[i].mem_tsp); + polys.mem_val.set_if_valid_index(i, rows[i].mem_val); + polys.mem_w_in_tag.set_if_valid_index(i, rows[i].mem_w_in_tag); + polys.pedersen_clk.set_if_valid_index(i, rows[i].pedersen_clk); + polys.pedersen_input.set_if_valid_index(i, rows[i].pedersen_input); + polys.pedersen_output.set_if_valid_index(i, rows[i].pedersen_output); + polys.pedersen_sel_pedersen.set_if_valid_index(i, rows[i].pedersen_sel_pedersen); + polys.poseidon2_B_10_0.set_if_valid_index(i, rows[i].poseidon2_B_10_0); + polys.poseidon2_B_10_1.set_if_valid_index(i, rows[i].poseidon2_B_10_1); + polys.poseidon2_B_10_2.set_if_valid_index(i, rows[i].poseidon2_B_10_2); + polys.poseidon2_B_10_3.set_if_valid_index(i, rows[i].poseidon2_B_10_3); + polys.poseidon2_B_11_0.set_if_valid_index(i, rows[i].poseidon2_B_11_0); + polys.poseidon2_B_11_1.set_if_valid_index(i, rows[i].poseidon2_B_11_1); + polys.poseidon2_B_11_2.set_if_valid_index(i, rows[i].poseidon2_B_11_2); + polys.poseidon2_B_11_3.set_if_valid_index(i, rows[i].poseidon2_B_11_3); + polys.poseidon2_B_12_0.set_if_valid_index(i, rows[i].poseidon2_B_12_0); + polys.poseidon2_B_12_1.set_if_valid_index(i, rows[i].poseidon2_B_12_1); + polys.poseidon2_B_12_2.set_if_valid_index(i, rows[i].poseidon2_B_12_2); + polys.poseidon2_B_12_3.set_if_valid_index(i, rows[i].poseidon2_B_12_3); + polys.poseidon2_B_13_0.set_if_valid_index(i, rows[i].poseidon2_B_13_0); + polys.poseidon2_B_13_1.set_if_valid_index(i, rows[i].poseidon2_B_13_1); + polys.poseidon2_B_13_2.set_if_valid_index(i, rows[i].poseidon2_B_13_2); + polys.poseidon2_B_13_3.set_if_valid_index(i, rows[i].poseidon2_B_13_3); + polys.poseidon2_B_14_0.set_if_valid_index(i, rows[i].poseidon2_B_14_0); + polys.poseidon2_B_14_1.set_if_valid_index(i, rows[i].poseidon2_B_14_1); + polys.poseidon2_B_14_2.set_if_valid_index(i, rows[i].poseidon2_B_14_2); + polys.poseidon2_B_14_3.set_if_valid_index(i, rows[i].poseidon2_B_14_3); + polys.poseidon2_B_15_0.set_if_valid_index(i, rows[i].poseidon2_B_15_0); + polys.poseidon2_B_15_1.set_if_valid_index(i, rows[i].poseidon2_B_15_1); + polys.poseidon2_B_15_2.set_if_valid_index(i, rows[i].poseidon2_B_15_2); + polys.poseidon2_B_15_3.set_if_valid_index(i, rows[i].poseidon2_B_15_3); + polys.poseidon2_B_16_0.set_if_valid_index(i, rows[i].poseidon2_B_16_0); + polys.poseidon2_B_16_1.set_if_valid_index(i, rows[i].poseidon2_B_16_1); + polys.poseidon2_B_16_2.set_if_valid_index(i, rows[i].poseidon2_B_16_2); + polys.poseidon2_B_16_3.set_if_valid_index(i, rows[i].poseidon2_B_16_3); + polys.poseidon2_B_17_0.set_if_valid_index(i, rows[i].poseidon2_B_17_0); + polys.poseidon2_B_17_1.set_if_valid_index(i, rows[i].poseidon2_B_17_1); + polys.poseidon2_B_17_2.set_if_valid_index(i, rows[i].poseidon2_B_17_2); + polys.poseidon2_B_17_3.set_if_valid_index(i, rows[i].poseidon2_B_17_3); + polys.poseidon2_B_18_0.set_if_valid_index(i, rows[i].poseidon2_B_18_0); + polys.poseidon2_B_18_1.set_if_valid_index(i, rows[i].poseidon2_B_18_1); + polys.poseidon2_B_18_2.set_if_valid_index(i, rows[i].poseidon2_B_18_2); + polys.poseidon2_B_18_3.set_if_valid_index(i, rows[i].poseidon2_B_18_3); + polys.poseidon2_B_19_0.set_if_valid_index(i, rows[i].poseidon2_B_19_0); + polys.poseidon2_B_19_1.set_if_valid_index(i, rows[i].poseidon2_B_19_1); + polys.poseidon2_B_19_2.set_if_valid_index(i, rows[i].poseidon2_B_19_2); + polys.poseidon2_B_19_3.set_if_valid_index(i, rows[i].poseidon2_B_19_3); + polys.poseidon2_B_20_0.set_if_valid_index(i, rows[i].poseidon2_B_20_0); + polys.poseidon2_B_20_1.set_if_valid_index(i, rows[i].poseidon2_B_20_1); + polys.poseidon2_B_20_2.set_if_valid_index(i, rows[i].poseidon2_B_20_2); + polys.poseidon2_B_20_3.set_if_valid_index(i, rows[i].poseidon2_B_20_3); + polys.poseidon2_B_21_0.set_if_valid_index(i, rows[i].poseidon2_B_21_0); + polys.poseidon2_B_21_1.set_if_valid_index(i, rows[i].poseidon2_B_21_1); + polys.poseidon2_B_21_2.set_if_valid_index(i, rows[i].poseidon2_B_21_2); + polys.poseidon2_B_21_3.set_if_valid_index(i, rows[i].poseidon2_B_21_3); + polys.poseidon2_B_22_0.set_if_valid_index(i, rows[i].poseidon2_B_22_0); + polys.poseidon2_B_22_1.set_if_valid_index(i, rows[i].poseidon2_B_22_1); + polys.poseidon2_B_22_2.set_if_valid_index(i, rows[i].poseidon2_B_22_2); + polys.poseidon2_B_22_3.set_if_valid_index(i, rows[i].poseidon2_B_22_3); + polys.poseidon2_B_23_0.set_if_valid_index(i, rows[i].poseidon2_B_23_0); + polys.poseidon2_B_23_1.set_if_valid_index(i, rows[i].poseidon2_B_23_1); + polys.poseidon2_B_23_2.set_if_valid_index(i, rows[i].poseidon2_B_23_2); + polys.poseidon2_B_23_3.set_if_valid_index(i, rows[i].poseidon2_B_23_3); + polys.poseidon2_B_24_0.set_if_valid_index(i, rows[i].poseidon2_B_24_0); + polys.poseidon2_B_24_1.set_if_valid_index(i, rows[i].poseidon2_B_24_1); + polys.poseidon2_B_24_2.set_if_valid_index(i, rows[i].poseidon2_B_24_2); + polys.poseidon2_B_24_3.set_if_valid_index(i, rows[i].poseidon2_B_24_3); + polys.poseidon2_B_25_0.set_if_valid_index(i, rows[i].poseidon2_B_25_0); + polys.poseidon2_B_25_1.set_if_valid_index(i, rows[i].poseidon2_B_25_1); + polys.poseidon2_B_25_2.set_if_valid_index(i, rows[i].poseidon2_B_25_2); + polys.poseidon2_B_25_3.set_if_valid_index(i, rows[i].poseidon2_B_25_3); + polys.poseidon2_B_26_0.set_if_valid_index(i, rows[i].poseidon2_B_26_0); + polys.poseidon2_B_26_1.set_if_valid_index(i, rows[i].poseidon2_B_26_1); + polys.poseidon2_B_26_2.set_if_valid_index(i, rows[i].poseidon2_B_26_2); + polys.poseidon2_B_26_3.set_if_valid_index(i, rows[i].poseidon2_B_26_3); + polys.poseidon2_B_27_0.set_if_valid_index(i, rows[i].poseidon2_B_27_0); + polys.poseidon2_B_27_1.set_if_valid_index(i, rows[i].poseidon2_B_27_1); + polys.poseidon2_B_27_2.set_if_valid_index(i, rows[i].poseidon2_B_27_2); + polys.poseidon2_B_27_3.set_if_valid_index(i, rows[i].poseidon2_B_27_3); + polys.poseidon2_B_28_0.set_if_valid_index(i, rows[i].poseidon2_B_28_0); + polys.poseidon2_B_28_1.set_if_valid_index(i, rows[i].poseidon2_B_28_1); + polys.poseidon2_B_28_2.set_if_valid_index(i, rows[i].poseidon2_B_28_2); + polys.poseidon2_B_28_3.set_if_valid_index(i, rows[i].poseidon2_B_28_3); + polys.poseidon2_B_29_0.set_if_valid_index(i, rows[i].poseidon2_B_29_0); + polys.poseidon2_B_29_1.set_if_valid_index(i, rows[i].poseidon2_B_29_1); + polys.poseidon2_B_29_2.set_if_valid_index(i, rows[i].poseidon2_B_29_2); + polys.poseidon2_B_29_3.set_if_valid_index(i, rows[i].poseidon2_B_29_3); + polys.poseidon2_B_30_0.set_if_valid_index(i, rows[i].poseidon2_B_30_0); + polys.poseidon2_B_30_1.set_if_valid_index(i, rows[i].poseidon2_B_30_1); + polys.poseidon2_B_30_2.set_if_valid_index(i, rows[i].poseidon2_B_30_2); + polys.poseidon2_B_30_3.set_if_valid_index(i, rows[i].poseidon2_B_30_3); + polys.poseidon2_B_31_0.set_if_valid_index(i, rows[i].poseidon2_B_31_0); + polys.poseidon2_B_31_1.set_if_valid_index(i, rows[i].poseidon2_B_31_1); + polys.poseidon2_B_31_2.set_if_valid_index(i, rows[i].poseidon2_B_31_2); + polys.poseidon2_B_31_3.set_if_valid_index(i, rows[i].poseidon2_B_31_3); + polys.poseidon2_B_32_0.set_if_valid_index(i, rows[i].poseidon2_B_32_0); + polys.poseidon2_B_32_1.set_if_valid_index(i, rows[i].poseidon2_B_32_1); + polys.poseidon2_B_32_2.set_if_valid_index(i, rows[i].poseidon2_B_32_2); + polys.poseidon2_B_32_3.set_if_valid_index(i, rows[i].poseidon2_B_32_3); + polys.poseidon2_B_33_0.set_if_valid_index(i, rows[i].poseidon2_B_33_0); + polys.poseidon2_B_33_1.set_if_valid_index(i, rows[i].poseidon2_B_33_1); + polys.poseidon2_B_33_2.set_if_valid_index(i, rows[i].poseidon2_B_33_2); + polys.poseidon2_B_33_3.set_if_valid_index(i, rows[i].poseidon2_B_33_3); + polys.poseidon2_B_34_0.set_if_valid_index(i, rows[i].poseidon2_B_34_0); + polys.poseidon2_B_34_1.set_if_valid_index(i, rows[i].poseidon2_B_34_1); + polys.poseidon2_B_34_2.set_if_valid_index(i, rows[i].poseidon2_B_34_2); + polys.poseidon2_B_34_3.set_if_valid_index(i, rows[i].poseidon2_B_34_3); + polys.poseidon2_B_35_0.set_if_valid_index(i, rows[i].poseidon2_B_35_0); + polys.poseidon2_B_35_1.set_if_valid_index(i, rows[i].poseidon2_B_35_1); + polys.poseidon2_B_35_2.set_if_valid_index(i, rows[i].poseidon2_B_35_2); + polys.poseidon2_B_35_3.set_if_valid_index(i, rows[i].poseidon2_B_35_3); + polys.poseidon2_B_36_0.set_if_valid_index(i, rows[i].poseidon2_B_36_0); + polys.poseidon2_B_36_1.set_if_valid_index(i, rows[i].poseidon2_B_36_1); + polys.poseidon2_B_36_2.set_if_valid_index(i, rows[i].poseidon2_B_36_2); + polys.poseidon2_B_36_3.set_if_valid_index(i, rows[i].poseidon2_B_36_3); + polys.poseidon2_B_37_0.set_if_valid_index(i, rows[i].poseidon2_B_37_0); + polys.poseidon2_B_37_1.set_if_valid_index(i, rows[i].poseidon2_B_37_1); + polys.poseidon2_B_37_2.set_if_valid_index(i, rows[i].poseidon2_B_37_2); + polys.poseidon2_B_37_3.set_if_valid_index(i, rows[i].poseidon2_B_37_3); + polys.poseidon2_B_38_0.set_if_valid_index(i, rows[i].poseidon2_B_38_0); + polys.poseidon2_B_38_1.set_if_valid_index(i, rows[i].poseidon2_B_38_1); + polys.poseidon2_B_38_2.set_if_valid_index(i, rows[i].poseidon2_B_38_2); + polys.poseidon2_B_38_3.set_if_valid_index(i, rows[i].poseidon2_B_38_3); + polys.poseidon2_B_39_0.set_if_valid_index(i, rows[i].poseidon2_B_39_0); + polys.poseidon2_B_39_1.set_if_valid_index(i, rows[i].poseidon2_B_39_1); + polys.poseidon2_B_39_2.set_if_valid_index(i, rows[i].poseidon2_B_39_2); + polys.poseidon2_B_39_3.set_if_valid_index(i, rows[i].poseidon2_B_39_3); + polys.poseidon2_B_40_0.set_if_valid_index(i, rows[i].poseidon2_B_40_0); + polys.poseidon2_B_40_1.set_if_valid_index(i, rows[i].poseidon2_B_40_1); + polys.poseidon2_B_40_2.set_if_valid_index(i, rows[i].poseidon2_B_40_2); + polys.poseidon2_B_40_3.set_if_valid_index(i, rows[i].poseidon2_B_40_3); + polys.poseidon2_B_41_0.set_if_valid_index(i, rows[i].poseidon2_B_41_0); + polys.poseidon2_B_41_1.set_if_valid_index(i, rows[i].poseidon2_B_41_1); + polys.poseidon2_B_41_2.set_if_valid_index(i, rows[i].poseidon2_B_41_2); + polys.poseidon2_B_41_3.set_if_valid_index(i, rows[i].poseidon2_B_41_3); + polys.poseidon2_B_42_0.set_if_valid_index(i, rows[i].poseidon2_B_42_0); + polys.poseidon2_B_42_1.set_if_valid_index(i, rows[i].poseidon2_B_42_1); + polys.poseidon2_B_42_2.set_if_valid_index(i, rows[i].poseidon2_B_42_2); + polys.poseidon2_B_42_3.set_if_valid_index(i, rows[i].poseidon2_B_42_3); + polys.poseidon2_B_43_0.set_if_valid_index(i, rows[i].poseidon2_B_43_0); + polys.poseidon2_B_43_1.set_if_valid_index(i, rows[i].poseidon2_B_43_1); + polys.poseidon2_B_43_2.set_if_valid_index(i, rows[i].poseidon2_B_43_2); + polys.poseidon2_B_43_3.set_if_valid_index(i, rows[i].poseidon2_B_43_3); + polys.poseidon2_B_44_0.set_if_valid_index(i, rows[i].poseidon2_B_44_0); + polys.poseidon2_B_44_1.set_if_valid_index(i, rows[i].poseidon2_B_44_1); + polys.poseidon2_B_44_2.set_if_valid_index(i, rows[i].poseidon2_B_44_2); + polys.poseidon2_B_44_3.set_if_valid_index(i, rows[i].poseidon2_B_44_3); + polys.poseidon2_B_45_0.set_if_valid_index(i, rows[i].poseidon2_B_45_0); + polys.poseidon2_B_45_1.set_if_valid_index(i, rows[i].poseidon2_B_45_1); + polys.poseidon2_B_45_2.set_if_valid_index(i, rows[i].poseidon2_B_45_2); + polys.poseidon2_B_45_3.set_if_valid_index(i, rows[i].poseidon2_B_45_3); + polys.poseidon2_B_46_0.set_if_valid_index(i, rows[i].poseidon2_B_46_0); + polys.poseidon2_B_46_1.set_if_valid_index(i, rows[i].poseidon2_B_46_1); + polys.poseidon2_B_46_2.set_if_valid_index(i, rows[i].poseidon2_B_46_2); + polys.poseidon2_B_46_3.set_if_valid_index(i, rows[i].poseidon2_B_46_3); + polys.poseidon2_B_47_0.set_if_valid_index(i, rows[i].poseidon2_B_47_0); + polys.poseidon2_B_47_1.set_if_valid_index(i, rows[i].poseidon2_B_47_1); + polys.poseidon2_B_47_2.set_if_valid_index(i, rows[i].poseidon2_B_47_2); + polys.poseidon2_B_47_3.set_if_valid_index(i, rows[i].poseidon2_B_47_3); + polys.poseidon2_B_48_0.set_if_valid_index(i, rows[i].poseidon2_B_48_0); + polys.poseidon2_B_48_1.set_if_valid_index(i, rows[i].poseidon2_B_48_1); + polys.poseidon2_B_48_2.set_if_valid_index(i, rows[i].poseidon2_B_48_2); + polys.poseidon2_B_48_3.set_if_valid_index(i, rows[i].poseidon2_B_48_3); + polys.poseidon2_B_49_0.set_if_valid_index(i, rows[i].poseidon2_B_49_0); + polys.poseidon2_B_49_1.set_if_valid_index(i, rows[i].poseidon2_B_49_1); + polys.poseidon2_B_49_2.set_if_valid_index(i, rows[i].poseidon2_B_49_2); + polys.poseidon2_B_49_3.set_if_valid_index(i, rows[i].poseidon2_B_49_3); + polys.poseidon2_B_4_0.set_if_valid_index(i, rows[i].poseidon2_B_4_0); + polys.poseidon2_B_4_1.set_if_valid_index(i, rows[i].poseidon2_B_4_1); + polys.poseidon2_B_4_2.set_if_valid_index(i, rows[i].poseidon2_B_4_2); + polys.poseidon2_B_4_3.set_if_valid_index(i, rows[i].poseidon2_B_4_3); + polys.poseidon2_B_50_0.set_if_valid_index(i, rows[i].poseidon2_B_50_0); + polys.poseidon2_B_50_1.set_if_valid_index(i, rows[i].poseidon2_B_50_1); + polys.poseidon2_B_50_2.set_if_valid_index(i, rows[i].poseidon2_B_50_2); + polys.poseidon2_B_50_3.set_if_valid_index(i, rows[i].poseidon2_B_50_3); + polys.poseidon2_B_51_0.set_if_valid_index(i, rows[i].poseidon2_B_51_0); + polys.poseidon2_B_51_1.set_if_valid_index(i, rows[i].poseidon2_B_51_1); + polys.poseidon2_B_51_2.set_if_valid_index(i, rows[i].poseidon2_B_51_2); + polys.poseidon2_B_51_3.set_if_valid_index(i, rows[i].poseidon2_B_51_3); + polys.poseidon2_B_52_0.set_if_valid_index(i, rows[i].poseidon2_B_52_0); + polys.poseidon2_B_52_1.set_if_valid_index(i, rows[i].poseidon2_B_52_1); + polys.poseidon2_B_52_2.set_if_valid_index(i, rows[i].poseidon2_B_52_2); + polys.poseidon2_B_52_3.set_if_valid_index(i, rows[i].poseidon2_B_52_3); + polys.poseidon2_B_53_0.set_if_valid_index(i, rows[i].poseidon2_B_53_0); + polys.poseidon2_B_53_1.set_if_valid_index(i, rows[i].poseidon2_B_53_1); + polys.poseidon2_B_53_2.set_if_valid_index(i, rows[i].poseidon2_B_53_2); + polys.poseidon2_B_53_3.set_if_valid_index(i, rows[i].poseidon2_B_53_3); + polys.poseidon2_B_54_0.set_if_valid_index(i, rows[i].poseidon2_B_54_0); + polys.poseidon2_B_54_1.set_if_valid_index(i, rows[i].poseidon2_B_54_1); + polys.poseidon2_B_54_2.set_if_valid_index(i, rows[i].poseidon2_B_54_2); + polys.poseidon2_B_54_3.set_if_valid_index(i, rows[i].poseidon2_B_54_3); + polys.poseidon2_B_55_0.set_if_valid_index(i, rows[i].poseidon2_B_55_0); + polys.poseidon2_B_55_1.set_if_valid_index(i, rows[i].poseidon2_B_55_1); + polys.poseidon2_B_55_2.set_if_valid_index(i, rows[i].poseidon2_B_55_2); + polys.poseidon2_B_55_3.set_if_valid_index(i, rows[i].poseidon2_B_55_3); + polys.poseidon2_B_56_0.set_if_valid_index(i, rows[i].poseidon2_B_56_0); + polys.poseidon2_B_56_1.set_if_valid_index(i, rows[i].poseidon2_B_56_1); + polys.poseidon2_B_56_2.set_if_valid_index(i, rows[i].poseidon2_B_56_2); + polys.poseidon2_B_56_3.set_if_valid_index(i, rows[i].poseidon2_B_56_3); + polys.poseidon2_B_57_0.set_if_valid_index(i, rows[i].poseidon2_B_57_0); + polys.poseidon2_B_57_1.set_if_valid_index(i, rows[i].poseidon2_B_57_1); + polys.poseidon2_B_57_2.set_if_valid_index(i, rows[i].poseidon2_B_57_2); + polys.poseidon2_B_57_3.set_if_valid_index(i, rows[i].poseidon2_B_57_3); + polys.poseidon2_B_58_0.set_if_valid_index(i, rows[i].poseidon2_B_58_0); + polys.poseidon2_B_58_1.set_if_valid_index(i, rows[i].poseidon2_B_58_1); + polys.poseidon2_B_58_2.set_if_valid_index(i, rows[i].poseidon2_B_58_2); + polys.poseidon2_B_58_3.set_if_valid_index(i, rows[i].poseidon2_B_58_3); + polys.poseidon2_B_59_0.set_if_valid_index(i, rows[i].poseidon2_B_59_0); + polys.poseidon2_B_59_1.set_if_valid_index(i, rows[i].poseidon2_B_59_1); + polys.poseidon2_B_59_2.set_if_valid_index(i, rows[i].poseidon2_B_59_2); + polys.poseidon2_B_59_3.set_if_valid_index(i, rows[i].poseidon2_B_59_3); + polys.poseidon2_B_5_0.set_if_valid_index(i, rows[i].poseidon2_B_5_0); + polys.poseidon2_B_5_1.set_if_valid_index(i, rows[i].poseidon2_B_5_1); + polys.poseidon2_B_5_2.set_if_valid_index(i, rows[i].poseidon2_B_5_2); + polys.poseidon2_B_5_3.set_if_valid_index(i, rows[i].poseidon2_B_5_3); + polys.poseidon2_B_6_0.set_if_valid_index(i, rows[i].poseidon2_B_6_0); + polys.poseidon2_B_6_1.set_if_valid_index(i, rows[i].poseidon2_B_6_1); + polys.poseidon2_B_6_2.set_if_valid_index(i, rows[i].poseidon2_B_6_2); + polys.poseidon2_B_6_3.set_if_valid_index(i, rows[i].poseidon2_B_6_3); + polys.poseidon2_B_7_0.set_if_valid_index(i, rows[i].poseidon2_B_7_0); + polys.poseidon2_B_7_1.set_if_valid_index(i, rows[i].poseidon2_B_7_1); + polys.poseidon2_B_7_2.set_if_valid_index(i, rows[i].poseidon2_B_7_2); + polys.poseidon2_B_7_3.set_if_valid_index(i, rows[i].poseidon2_B_7_3); + polys.poseidon2_B_8_0.set_if_valid_index(i, rows[i].poseidon2_B_8_0); + polys.poseidon2_B_8_1.set_if_valid_index(i, rows[i].poseidon2_B_8_1); + polys.poseidon2_B_8_2.set_if_valid_index(i, rows[i].poseidon2_B_8_2); + polys.poseidon2_B_8_3.set_if_valid_index(i, rows[i].poseidon2_B_8_3); + polys.poseidon2_B_9_0.set_if_valid_index(i, rows[i].poseidon2_B_9_0); + polys.poseidon2_B_9_1.set_if_valid_index(i, rows[i].poseidon2_B_9_1); + polys.poseidon2_B_9_2.set_if_valid_index(i, rows[i].poseidon2_B_9_2); + polys.poseidon2_B_9_3.set_if_valid_index(i, rows[i].poseidon2_B_9_3); + polys.poseidon2_EXT_LAYER_4.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_4); + polys.poseidon2_EXT_LAYER_5.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_5); + polys.poseidon2_EXT_LAYER_6.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_6); + polys.poseidon2_EXT_LAYER_7.set_if_valid_index(i, rows[i].poseidon2_EXT_LAYER_7); + polys.poseidon2_T_0_4.set_if_valid_index(i, rows[i].poseidon2_T_0_4); + polys.poseidon2_T_0_5.set_if_valid_index(i, rows[i].poseidon2_T_0_5); + polys.poseidon2_T_0_6.set_if_valid_index(i, rows[i].poseidon2_T_0_6); + polys.poseidon2_T_0_7.set_if_valid_index(i, rows[i].poseidon2_T_0_7); + polys.poseidon2_T_1_4.set_if_valid_index(i, rows[i].poseidon2_T_1_4); + polys.poseidon2_T_1_5.set_if_valid_index(i, rows[i].poseidon2_T_1_5); + polys.poseidon2_T_1_6.set_if_valid_index(i, rows[i].poseidon2_T_1_6); + polys.poseidon2_T_1_7.set_if_valid_index(i, rows[i].poseidon2_T_1_7); + polys.poseidon2_T_2_4.set_if_valid_index(i, rows[i].poseidon2_T_2_4); + polys.poseidon2_T_2_5.set_if_valid_index(i, rows[i].poseidon2_T_2_5); + polys.poseidon2_T_2_6.set_if_valid_index(i, rows[i].poseidon2_T_2_6); + polys.poseidon2_T_2_7.set_if_valid_index(i, rows[i].poseidon2_T_2_7); + polys.poseidon2_T_3_4.set_if_valid_index(i, rows[i].poseidon2_T_3_4); + polys.poseidon2_T_3_5.set_if_valid_index(i, rows[i].poseidon2_T_3_5); + polys.poseidon2_T_3_6.set_if_valid_index(i, rows[i].poseidon2_T_3_6); + polys.poseidon2_T_3_7.set_if_valid_index(i, rows[i].poseidon2_T_3_7); + polys.poseidon2_T_60_4.set_if_valid_index(i, rows[i].poseidon2_T_60_4); + polys.poseidon2_T_60_5.set_if_valid_index(i, rows[i].poseidon2_T_60_5); + polys.poseidon2_T_60_6.set_if_valid_index(i, rows[i].poseidon2_T_60_6); + polys.poseidon2_T_60_7.set_if_valid_index(i, rows[i].poseidon2_T_60_7); + polys.poseidon2_T_61_4.set_if_valid_index(i, rows[i].poseidon2_T_61_4); + polys.poseidon2_T_61_5.set_if_valid_index(i, rows[i].poseidon2_T_61_5); + polys.poseidon2_T_61_6.set_if_valid_index(i, rows[i].poseidon2_T_61_6); + polys.poseidon2_T_61_7.set_if_valid_index(i, rows[i].poseidon2_T_61_7); + polys.poseidon2_T_62_4.set_if_valid_index(i, rows[i].poseidon2_T_62_4); + polys.poseidon2_T_62_5.set_if_valid_index(i, rows[i].poseidon2_T_62_5); + polys.poseidon2_T_62_6.set_if_valid_index(i, rows[i].poseidon2_T_62_6); + polys.poseidon2_T_62_7.set_if_valid_index(i, rows[i].poseidon2_T_62_7); + polys.poseidon2_T_63_4.set_if_valid_index(i, rows[i].poseidon2_T_63_4); + polys.poseidon2_T_63_5.set_if_valid_index(i, rows[i].poseidon2_T_63_5); + polys.poseidon2_T_63_6.set_if_valid_index(i, rows[i].poseidon2_T_63_6); + polys.poseidon2_T_63_7.set_if_valid_index(i, rows[i].poseidon2_T_63_7); + polys.poseidon2_a_0.set_if_valid_index(i, rows[i].poseidon2_a_0); + polys.poseidon2_a_1.set_if_valid_index(i, rows[i].poseidon2_a_1); + polys.poseidon2_a_2.set_if_valid_index(i, rows[i].poseidon2_a_2); + polys.poseidon2_a_3.set_if_valid_index(i, rows[i].poseidon2_a_3); + polys.poseidon2_b_0.set_if_valid_index(i, rows[i].poseidon2_b_0); + polys.poseidon2_b_1.set_if_valid_index(i, rows[i].poseidon2_b_1); + polys.poseidon2_b_2.set_if_valid_index(i, rows[i].poseidon2_b_2); + polys.poseidon2_b_3.set_if_valid_index(i, rows[i].poseidon2_b_3); + polys.poseidon2_clk.set_if_valid_index(i, rows[i].poseidon2_clk); + polys.poseidon2_input_addr.set_if_valid_index(i, rows[i].poseidon2_input_addr); + polys.poseidon2_mem_addr_read_a.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_a); + polys.poseidon2_mem_addr_read_b.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_b); + polys.poseidon2_mem_addr_read_c.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_c); + polys.poseidon2_mem_addr_read_d.set_if_valid_index(i, rows[i].poseidon2_mem_addr_read_d); + polys.poseidon2_mem_addr_write_a.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_a); + polys.poseidon2_mem_addr_write_b.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_b); + polys.poseidon2_mem_addr_write_c.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_c); + polys.poseidon2_mem_addr_write_d.set_if_valid_index(i, rows[i].poseidon2_mem_addr_write_d); + polys.poseidon2_output_addr.set_if_valid_index(i, rows[i].poseidon2_output_addr); + polys.poseidon2_sel_poseidon_perm.set_if_valid_index(i, rows[i].poseidon2_sel_poseidon_perm); + polys.range_check_alu_rng_chk.set_if_valid_index(i, rows[i].range_check_alu_rng_chk); + polys.range_check_clk.set_if_valid_index(i, rows[i].range_check_clk); + polys.range_check_cmp_hi_bits_rng_chk.set_if_valid_index(i, rows[i].range_check_cmp_hi_bits_rng_chk); + polys.range_check_cmp_lo_bits_rng_chk.set_if_valid_index(i, rows[i].range_check_cmp_lo_bits_rng_chk); + polys.range_check_dyn_diff.set_if_valid_index(i, rows[i].range_check_dyn_diff); + polys.range_check_dyn_rng_chk_bits.set_if_valid_index(i, rows[i].range_check_dyn_rng_chk_bits); + polys.range_check_dyn_rng_chk_pow_2.set_if_valid_index(i, rows[i].range_check_dyn_rng_chk_pow_2); + polys.range_check_gas_da_rng_chk.set_if_valid_index(i, rows[i].range_check_gas_da_rng_chk); + polys.range_check_gas_l2_rng_chk.set_if_valid_index(i, rows[i].range_check_gas_l2_rng_chk); + polys.range_check_is_lte_u112.set_if_valid_index(i, rows[i].range_check_is_lte_u112); + polys.range_check_is_lte_u128.set_if_valid_index(i, rows[i].range_check_is_lte_u128); + polys.range_check_is_lte_u16.set_if_valid_index(i, rows[i].range_check_is_lte_u16); + polys.range_check_is_lte_u32.set_if_valid_index(i, rows[i].range_check_is_lte_u32); + polys.range_check_is_lte_u48.set_if_valid_index(i, rows[i].range_check_is_lte_u48); + polys.range_check_is_lte_u64.set_if_valid_index(i, rows[i].range_check_is_lte_u64); + polys.range_check_is_lte_u80.set_if_valid_index(i, rows[i].range_check_is_lte_u80); + polys.range_check_is_lte_u96.set_if_valid_index(i, rows[i].range_check_is_lte_u96); + polys.range_check_mem_rng_chk.set_if_valid_index(i, rows[i].range_check_mem_rng_chk); + polys.range_check_rng_chk_bits.set_if_valid_index(i, rows[i].range_check_rng_chk_bits); + polys.range_check_sel_lookup_0.set_if_valid_index(i, rows[i].range_check_sel_lookup_0); + polys.range_check_sel_lookup_1.set_if_valid_index(i, rows[i].range_check_sel_lookup_1); + polys.range_check_sel_lookup_2.set_if_valid_index(i, rows[i].range_check_sel_lookup_2); + polys.range_check_sel_lookup_3.set_if_valid_index(i, rows[i].range_check_sel_lookup_3); + polys.range_check_sel_lookup_4.set_if_valid_index(i, rows[i].range_check_sel_lookup_4); + polys.range_check_sel_lookup_5.set_if_valid_index(i, rows[i].range_check_sel_lookup_5); + polys.range_check_sel_lookup_6.set_if_valid_index(i, rows[i].range_check_sel_lookup_6); + polys.range_check_sel_rng_chk.set_if_valid_index(i, rows[i].range_check_sel_rng_chk); + polys.range_check_u16_r0.set_if_valid_index(i, rows[i].range_check_u16_r0); + polys.range_check_u16_r1.set_if_valid_index(i, rows[i].range_check_u16_r1); + polys.range_check_u16_r2.set_if_valid_index(i, rows[i].range_check_u16_r2); + polys.range_check_u16_r3.set_if_valid_index(i, rows[i].range_check_u16_r3); + polys.range_check_u16_r4.set_if_valid_index(i, rows[i].range_check_u16_r4); + polys.range_check_u16_r5.set_if_valid_index(i, rows[i].range_check_u16_r5); + polys.range_check_u16_r6.set_if_valid_index(i, rows[i].range_check_u16_r6); + polys.range_check_u16_r7.set_if_valid_index(i, rows[i].range_check_u16_r7); + polys.range_check_value.set_if_valid_index(i, rows[i].range_check_value); + polys.sha256_clk.set_if_valid_index(i, rows[i].sha256_clk); + polys.sha256_input.set_if_valid_index(i, rows[i].sha256_input); + polys.sha256_output.set_if_valid_index(i, rows[i].sha256_output); + polys.sha256_sel_sha256_compression.set_if_valid_index(i, rows[i].sha256_sel_sha256_compression); + polys.sha256_state.set_if_valid_index(i, rows[i].sha256_state); + polys.slice_addr.set_if_valid_index(i, rows[i].slice_addr); + polys.slice_clk.set_if_valid_index(i, rows[i].slice_clk); + polys.slice_cnt.set_if_valid_index(i, rows[i].slice_cnt); + polys.slice_col_offset.set_if_valid_index(i, rows[i].slice_col_offset); + polys.slice_one_min_inv.set_if_valid_index(i, rows[i].slice_one_min_inv); + polys.slice_sel_cd_cpy.set_if_valid_index(i, rows[i].slice_sel_cd_cpy); + polys.slice_sel_mem_active.set_if_valid_index(i, rows[i].slice_sel_mem_active); + polys.slice_sel_return.set_if_valid_index(i, rows[i].slice_sel_return); + polys.slice_sel_start.set_if_valid_index(i, rows[i].slice_sel_start); + polys.slice_space_id.set_if_valid_index(i, rows[i].slice_space_id); + polys.slice_val.set_if_valid_index(i, rows[i].slice_val); + polys.lookup_rng_chk_pow_2_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_pow_2_counts); + polys.lookup_rng_chk_diff_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_diff_counts); + polys.lookup_rng_chk_0_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_0_counts); + polys.lookup_rng_chk_1_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_1_counts); + polys.lookup_rng_chk_2_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_2_counts); + polys.lookup_rng_chk_3_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_3_counts); + polys.lookup_rng_chk_4_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_4_counts); + polys.lookup_rng_chk_5_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_5_counts); + polys.lookup_rng_chk_6_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_6_counts); + polys.lookup_rng_chk_7_counts.set_if_valid_index(i, rows[i].lookup_rng_chk_7_counts); + polys.lookup_pow_2_0_counts.set_if_valid_index(i, rows[i].lookup_pow_2_0_counts); + polys.lookup_pow_2_1_counts.set_if_valid_index(i, rows[i].lookup_pow_2_1_counts); + polys.lookup_byte_lengths_counts.set_if_valid_index(i, rows[i].lookup_byte_lengths_counts); + polys.lookup_byte_operations_counts.set_if_valid_index(i, rows[i].lookup_byte_operations_counts); + polys.lookup_opcode_gas_counts.set_if_valid_index(i, rows[i].lookup_opcode_gas_counts); + polys.kernel_output_lookup_counts.set_if_valid_index(i, rows[i].kernel_output_lookup_counts); + polys.lookup_into_kernel_counts.set_if_valid_index(i, rows[i].lookup_into_kernel_counts); + polys.lookup_cd_value_counts.set_if_valid_index(i, rows[i].lookup_cd_value_counts); + polys.lookup_ret_value_counts.set_if_valid_index(i, rows[i].lookup_ret_value_counts); + polys.incl_main_tag_err_counts.set_if_valid_index(i, rows[i].incl_main_tag_err_counts); + polys.incl_mem_tag_err_counts.set_if_valid_index(i, rows[i].incl_mem_tag_err_counts); + }); + })); - for (auto [shifted, to_be_shifted] : zip_view(polys.get_shifted(), polys.get_to_be_shifted())) { - shifted = to_be_shifted.shifted(); - } + AVM_TRACK_TIME("circuit_builder/set_polys_shifted", ({ + for (auto [shifted, to_be_shifted] : zip_view(polys.get_shifted(), polys.get_to_be_shifted())) { + shifted = to_be_shifted.shifted(); + } + })); return polys; } diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.cpp index 495f24e07d99..45ffe4c9eead 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/composer.cpp @@ -1,5 +1,6 @@ // AUTOGENERATED FILE #include "barretenberg/vm/avm/generated/composer.hpp" +#include "barretenberg/vm/stats.hpp" namespace bb { @@ -14,7 +15,7 @@ void AvmComposer::compute_witness(CircuitConstructor& circuit) for (auto [key_poly, prover_poly] : zip_view(proving_key->get_all(), polynomials.get_unshifted())) { ASSERT(flavor_get_label(*proving_key, key_poly) == flavor_get_label(polynomials, prover_poly)); - key_poly = prover_poly; + key_poly = std::move(prover_poly); } computed_witness = true; @@ -22,12 +23,12 @@ void AvmComposer::compute_witness(CircuitConstructor& circuit) AvmProver AvmComposer::create_prover(CircuitConstructor& circuit_constructor) { - compute_proving_key(circuit_constructor); - compute_witness(circuit_constructor); - compute_commitment_key(circuit_constructor.get_circuit_subgroup_size()); - - AvmProver output_state(proving_key, proving_key->commitment_key); - + AVM_TRACK_TIME("composer/create_prover:proving_key", compute_proving_key(circuit_constructor)); + AVM_TRACK_TIME("composer/create_prover:witness", compute_witness(circuit_constructor)); + AVM_TRACK_TIME("composer/create_prover:commitment_key", + compute_commitment_key(circuit_constructor.get_circuit_subgroup_size())); + auto output_state = AVM_TRACK_TIME_V("composer/create_prover:construct_prover", + AvmProver(proving_key, proving_key->commitment_key)); return output_state; } @@ -44,10 +45,8 @@ std::shared_ptr AvmComposer::compute_proving_key(CircuitCons } // Initialize proving_key - { - const size_t subgroup_size = circuit_constructor.get_circuit_subgroup_size(); - proving_key = std::make_shared(subgroup_size, 0); - } + const size_t subgroup_size = circuit_constructor.get_circuit_subgroup_size(); + proving_key = std::make_shared(subgroup_size, 0); return proving_key; } diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp index e9520fbff1c7..d5b13f289860 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp @@ -2273,14 +2273,8 @@ AvmFlavor::ProvingKey::ProvingKey(const size_t circuit_size, const size_t num_pu this->log_circuit_size = numeric::get_msb(circuit_size); this->num_public_inputs = num_public_inputs; - // Allocate memory for precomputed polynomials - for (auto& poly : PrecomputedEntities::get_all()) { - poly = Polynomial(circuit_size); - } - // Allocate memory for witness polynomials - for (auto& poly : WitnessEntities::get_all()) { - poly = Polynomial(circuit_size); - } + // The proving key's polynomials are not allocated here because they are later overwritten + // AvmComposer::compute_witness(). We should probably refactor this flow. }; /** diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp index 41e801b4c83d..488bf1fc4b31 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/prover.cpp @@ -27,8 +27,8 @@ using FF = Flavor::FF; * @tparam settings Settings class. */ AvmProver::AvmProver(std::shared_ptr input_key, std::shared_ptr commitment_key) - : key(input_key) - , commitment_key(commitment_key) + : key(std::move(input_key)) + , commitment_key(std::move(commitment_key)) { for (auto [prover_poly, key_poly] : zip_view(prover_polynomials.get_unshifted(), key->get_all())) { ASSERT(bb::flavor_get_label(prover_polynomials, prover_poly) == bb::flavor_get_label(*key, key_poly)); diff --git a/bb-pilcom/bb-pil-backend/src/lookup_builder.rs b/bb-pilcom/bb-pil-backend/src/lookup_builder.rs index b6afa0953512..b67d8528f817 100644 --- a/bb-pilcom/bb-pil-backend/src/lookup_builder.rs +++ b/bb-pilcom/bb-pil-backend/src/lookup_builder.rs @@ -109,7 +109,6 @@ pub fn get_counts_from_lookups(lookups: &[Lookup]) -> Vec { fn create_lookup_settings_data(lookup: &Lookup) -> Json { let columns_per_set = lookup.left.cols.len(); - let counts_poly_name = lookup.counts_poly.to_owned(); // NOTE: https://github.com/AztecProtocol/aztec-packages/issues/3879 // Settings are not flexible enough to combine inverses diff --git a/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs index 13cb0632d5da..f657586caa7e 100644 --- a/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs @@ -10,6 +10,7 @@ #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include "barretenberg/relations/generic_lookup/generic_lookup_relation.hpp" #include "barretenberg/honk/proof_system/logderivative_library.hpp" +#include "barretenberg/vm/stats.hpp" namespace bb { @@ -18,26 +19,40 @@ namespace bb { ProverPolynomials polys; // Allocate mem for each column - - for (auto& poly : polys.get_to_be_shifted()) { - poly = Polynomial::shiftable(num_rows); - } + AVM_TRACK_TIME("circuit_builder/init_polys_to_be_shifted", ({ + for (auto& poly : polys.get_to_be_shifted()) { + poly = Polynomial{ /*memory size*/ num_rows - 1, + /*largest possible index*/ num_rows, + /*make shiftable with offset*/ 1 }; + } + })); // catch-all with fully formed polynomials - for (auto& poly : polys.get_unshifted()) { - if (poly.is_empty()) { - poly = Polynomial{ num_rows }; - } - } - - for (size_t i = 0; i < rows.size(); i++) { + AVM_TRACK_TIME("circuit_builder/init_polys_unshifted", ({ + auto unshifted = polys.get_unshifted(); + bb::parallel_for(unshifted.size(), [&](size_t i) { + auto& poly = unshifted[i]; + if (poly.is_empty()) { + // Not set above + poly = Polynomial{ /*memory size*/ num_rows, /*largest possible index*/ num_rows }; + } + }); + })); + + AVM_TRACK_TIME( + "circuit_builder/set_polys_unshifted", ({ + bb::parallel_for(rows.size(), [&](size_t i) { {{#each all_cols_without_inverses as |poly|}} polys.{{poly}}.set_if_valid_index(i, rows[i].{{poly}}); {{/each}} - } + }); + })); - for (auto [shifted, to_be_shifted] : zip_view(polys.get_shifted(), polys.get_to_be_shifted())) { - shifted = to_be_shifted.shifted(); - } + AVM_TRACK_TIME( + "circuit_builder/set_polys_shifted", ({ + for (auto [shifted, to_be_shifted] : zip_view(polys.get_shifted(), polys.get_to_be_shifted())) { + shifted = to_be_shifted.shifted(); + } + })); return polys; } diff --git a/bb-pilcom/bb-pil-backend/templates/composer.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/composer.cpp.hbs index 76307d0ec278..4486ab527f77 100644 --- a/bb-pilcom/bb-pil-backend/templates/composer.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/composer.cpp.hbs @@ -1,5 +1,6 @@ // AUTOGENERATED FILE #include "barretenberg/vm/{{snakeCase name}}/generated/composer.hpp" +#include "barretenberg/vm/stats.hpp" namespace bb { @@ -14,7 +15,7 @@ void {{name}}Composer::compute_witness(CircuitConstructor& circuit) for (auto [key_poly, prover_poly] : zip_view(proving_key->get_all(), polynomials.get_unshifted())) { ASSERT(flavor_get_label(*proving_key, key_poly) == flavor_get_label(polynomials, prover_poly)); - key_poly = prover_poly; + key_poly = std::move(prover_poly); } computed_witness = true; @@ -22,12 +23,12 @@ void {{name}}Composer::compute_witness(CircuitConstructor& circuit) {{name}}Prover {{name}}Composer::create_prover(CircuitConstructor& circuit_constructor) { - compute_proving_key(circuit_constructor); - compute_witness(circuit_constructor); - compute_commitment_key(circuit_constructor.get_circuit_subgroup_size()); - - {{name}}Prover output_state(proving_key, proving_key->commitment_key); - + AVM_TRACK_TIME("composer/create_prover:proving_key", compute_proving_key(circuit_constructor)); + AVM_TRACK_TIME("composer/create_prover:witness", compute_witness(circuit_constructor)); + AVM_TRACK_TIME("composer/create_prover:commitment_key", + compute_commitment_key(circuit_constructor.get_circuit_subgroup_size())); + auto output_state = AVM_TRACK_TIME_V("composer/create_prover:construct_prover", + AvmProver(proving_key, proving_key->commitment_key)); return output_state; } diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs index 6d06471851a2..52d6710bded9 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs @@ -114,14 +114,8 @@ AvmFlavor::ProvingKey::ProvingKey(const size_t circuit_size, const size_t num_pu this->log_circuit_size = numeric::get_msb(circuit_size); this->num_public_inputs = num_public_inputs; - // Allocate memory for precomputed polynomials - for (auto& poly : PrecomputedEntities::get_all()) { - poly = Polynomial(circuit_size); - } - // Allocate memory for witness polynomials - for (auto& poly : WitnessEntities::get_all()) { - poly = Polynomial(circuit_size); - } + // The proving key's polynomials are not allocated here because they are later overwritten + // AvmComposer::compute_witness(). We should probably refactor this flow. }; /** diff --git a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs index c70f7c366392..c8eada2e5062 100644 --- a/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/prover.cpp.hbs @@ -28,8 +28,8 @@ using FF = Flavor::FF; */ {{name}}Prover::{{name}}Prover(std::shared_ptr input_key, std::shared_ptr commitment_key) - : key(input_key) - , commitment_key(commitment_key) + : key(std::move(input_key)) + , commitment_key(std::move(commitment_key)) { for (auto [prover_poly, key_poly] : zip_view(prover_polynomials.get_unshifted(), key->get_all())) { ASSERT(bb::flavor_get_label(prover_polynomials, prover_poly) ==