From a273136d1a4686ff37dc3b75c9518f0b28b7d457 Mon Sep 17 00:00:00 2001 From: Facundo Date: Wed, 29 Jan 2025 22:23:46 +0000 Subject: [PATCH] feat(avm): get_row optimization - 25x faster logderiv inv (#11605) Proving times (VM1) on 16 cores, 850+ columns, dozens of lookups, bulk_test. ``` ** Before ** prove/all_ms: 92606 prove/execute_log_derivative_inverse_round_ms: 21544 ** After ** prove/all_ms: 73404 prove/execute_log_derivative_inverse_round_ms: 839 ``` No change in sumcheck time. For reviewing, you can focus on the templates. An explanation follows (with history). --- This PR is about the `get_row()` method on the prover polynomials of a given flavor. This method is used by the [logderivative library](https://github.com/AztecProtocol/aztec-packages/blob/master/barretenberg/cpp/src/barretenberg/honk/proof_system/logderivative_library.hpp#L36) to compute logderivative inverses. Originally, `get_row()` was supposed to be debug only but it ended up used in the library above. To be fair, the reason is as follows: the `accumulate` function of relations (including lookups and perms), takes in a row (or something that looks like it!). However, by the time that you have to compute inverses, you don't have your row-based trace anymore, you only have the prover polynomials which are column-based. So, you need to extract a row from columns. The following sections explore a way to make things run faster, without completely breaking the `get_row()` expectations from the caller. That is, that it behaves like a row (you can do `.column` and it will return the field for it). # Phase 1: `AllEntities` So far so good. Normal [BB flavors](https://github.com/AztecProtocol/aztec-packages/blob/master/barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/mega_flavor.hpp#L366) make `get_row()` return `AllEntities` which is literally a row with as many fields copied as columns you have. Note that the copy is done even for the columns that may not get used later in the accumulation of a relation, or in the computation of inverses. This might be ok if you have 10 columns and a handful of lookups, but in our case we have dozens of lookups and 850+ columns (we estimate 3500 by completion of the AVM). # Phase 2: something like `AllEntities` As a quick fix you might think you can copy references instead and use `AllEntities`. Well you can't, at least not the way you would use `AllEntities`. Since the class would have members that are references, you need to define a constructor that initializes them all, maybe from a `RefArray` of sorts. The problem is because the class `AllEntities` is defined as inheriting from other classes, instead of being "flat". This, for us, added an immense amount of codegen. See `AllConstRefValues` [here](https://github.com/AztecProtocol/aztec-packages/blob/2f05dc02fe7b147c7cd6fc235134279dbf332c08/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.cpp). This improvement was introduced in [this PR](https://github.com/AztecProtocol/aztec-packages/pull/7419) and it gave a **20x** speed improvement over `AllEntities`. The code itself was then improved in [this PR](https://github.com/AztecProtocol/aztec-packages/pull/11504) by using a flat class and some fold expressions. # Phase 3: Getters Ideally what we'd want is for `get_row()` to return something like this: ``` template class PolynomialEntitiesAtFixedRow { public: PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials& pp) : row_idx(row_idx) , pp(pp) {} // what here? private: const size_t row_idx; const Polynomials& pp; }; ``` such that if you do `row.column` it would secretly do `pp.column[row_idx]` instead. Unfortunately, you cannot override the `.` operator, and certainly not like this. Instead, we compromise. I added a macro to generate getters `_column()` for every column, which do exactly that. Then I changed the lookups and permutation codegen to use that (i.e., `in._column()` instead of `in.column`). Note that we _only_ use these getters in lookups and perm, not in the main relations. However, we are not done. The perms and lookups code that we changed is also called by `accumulate` when doing sumcheck, and `AllEntities` does not provide those getters so it will not compile. Well, we add them, and we are done. This results in a **25x** time improvement in calculating logderiv inverses, amounting to a total of **500x** better than baseline. # Conclusion Some thing in BB are not thought for a VM :) I wonder if theres any such improvement lurking in sumcheck? :) --- .../vm/avm/generated/circuit_builder.cpp | 4 +- .../barretenberg/vm/avm/generated/columns.hpp | 1 + .../barretenberg/vm/avm/generated/flavor.hpp | 47 +- .../avm/generated/relations/lookups_alu.hpp | 44 +- .../generated/relations/lookups_binary.hpp | 52 +- .../avm/generated/relations/lookups_gas.hpp | 106 +-- .../avm/generated/relations/lookups_main.hpp | 36 +- .../avm/generated/relations/lookups_mem.hpp | 54 +- .../generated/relations/lookups_mem_slice.hpp | 44 +- .../relations/lookups_range_check.hpp | 184 ++-- .../vm/avm/generated/relations/perms_alu.hpp | 116 +-- .../vm/avm/generated/relations/perms_cmp.hpp | 102 +- .../vm/avm/generated/relations/perms_main.hpp | 882 +++++++++--------- .../generated/relations/perms_mem_slice.hpp | 58 +- .../generated/relations/perms_merkle_tree.hpp | 50 +- .../generated/relations/perms_poseidon2.hpp | 464 ++++----- .../relations/perms_poseidon2_full.hpp | 90 +- .../vm/avm/tests/full_poseidon2.test.cpp | 2 +- .../vm/avm/tests/merkle_tree.test.cpp | 2 +- .../vm/avm/tests/range_check.test.cpp | 2 +- .../src/barretenberg/vm2/common/macros.hpp | 16 + .../vm2/constraining/check_circuit.cpp | 3 +- .../barretenberg/vm2/generated/columns.hpp | 1 + .../src/barretenberg/vm2/generated/flavor.hpp | 47 +- .../relations/lookups_bc_decomposition.hpp | 22 +- .../generated/relations/lookups_execution.hpp | 60 +- .../relations/lookups_range_check.hpp | 184 ++-- .../generated/relations/lookups_sha256.hpp | 22 +- .../generated/relations/perms_execution.hpp | 50 +- .../templates/circuit_builder.cpp.hbs | 4 +- .../bb-pil-backend/templates/columns.hpp.hbs | 1 + .../bb-pil-backend/templates/flavor.hpp.hbs | 53 +- .../bb-pil-backend/templates/lookup.hpp.hbs | 18 +- .../templates/permutation.hpp.hbs | 6 +- 34 files changed, 1461 insertions(+), 1366 deletions(-) create mode 100644 barretenberg/cpp/src/barretenberg/vm2/common/macros.hpp 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 63f891b6a52..91b800a14c6 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/circuit_builder.cpp @@ -860,7 +860,7 @@ bool AvmCircuitBuilder::check_circuit() const std::array subrelation_failed = { false }; for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); for (size_t j = 0; j < result.size(); ++j) { if (!subrelation_failed[j] && result[j] != 0) { signal_error(format("Relation ", @@ -891,7 +891,7 @@ bool AvmCircuitBuilder::check_circuit() const r = 0; } for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(lookup_result, polys.get_row(r), params, 1); + Relation::accumulate(lookup_result, polys.get_standard_row(r), params, 1); } for (auto r : lookup_result) { if (r != 0) { diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/columns.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/columns.hpp index 56fc84a925f..c2565353d7c 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/columns.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/columns.hpp @@ -16,6 +16,7 @@ namespace bb::avm { #define AVM_TO_BE_SHIFTED(e) e.binary_acc_ia, e.binary_acc_ib, e.binary_acc_ic, e.binary_mem_tag_ctr, e.binary_op_id, e.cmp_a_hi, e.cmp_a_lo, e.cmp_b_hi, e.cmp_b_lo, e.cmp_cmp_rng_ctr, e.cmp_op_gt, e.cmp_p_sub_a_hi, e.cmp_p_sub_a_lo, e.cmp_p_sub_b_hi, e.cmp_p_sub_b_lo, e.cmp_sel_rng_chk, e.main_da_gas_remaining, e.main_l2_gas_remaining, e.main_pc, e.main_sel_execution_end, e.main_sel_execution_row, e.mem_glob_addr, e.mem_rw, e.mem_sel_mem, e.mem_tag, e.mem_tsp, e.mem_val, e.merkle_tree_leaf_index, e.merkle_tree_leaf_value, e.merkle_tree_path_len, e.poseidon2_full_a_0, e.poseidon2_full_a_1, e.poseidon2_full_a_2, e.poseidon2_full_a_3, e.poseidon2_full_execute_poseidon_perm, e.poseidon2_full_input_0, e.poseidon2_full_input_1, e.poseidon2_full_input_2, e.poseidon2_full_num_perm_rounds_rem, e.poseidon2_full_sel_poseidon, e.poseidon2_full_start_poseidon, e.slice_addr, e.slice_clk, e.slice_cnt, e.slice_sel_cd_cpy, e.slice_sel_mem_active, e.slice_sel_return, e.slice_sel_start, e.slice_space_id #define AVM_ALL_ENTITIES AVM_PRECOMPUTED_ENTITIES, AVM_WIRE_ENTITIES, AVM_DERIVED_WITNESS_ENTITIES, AVM_SHIFTED_ENTITIES #define AVM_UNSHIFTED_ENTITIES AVM_PRECOMPUTED_ENTITIES, AVM_WIRE_ENTITIES, AVM_DERIVED_WITNESS_ENTITIES +#define AVM_WITNESS_ENTITIES AVM_WIRE_ENTITIES, AVM_DERIVED_WITNESS_ENTITIES #define AVM_TO_BE_SHIFTED_COLUMNS Column::binary_acc_ia, Column::binary_acc_ib, Column::binary_acc_ic, Column::binary_mem_tag_ctr, Column::binary_op_id, Column::cmp_a_hi, Column::cmp_a_lo, Column::cmp_b_hi, Column::cmp_b_lo, Column::cmp_cmp_rng_ctr, Column::cmp_op_gt, Column::cmp_p_sub_a_hi, Column::cmp_p_sub_a_lo, Column::cmp_p_sub_b_hi, Column::cmp_p_sub_b_lo, Column::cmp_sel_rng_chk, Column::main_da_gas_remaining, Column::main_l2_gas_remaining, Column::main_pc, Column::main_sel_execution_end, Column::main_sel_execution_row, Column::mem_glob_addr, Column::mem_rw, Column::mem_sel_mem, Column::mem_tag, Column::mem_tsp, Column::mem_val, Column::merkle_tree_leaf_index, Column::merkle_tree_leaf_value, Column::merkle_tree_path_len, Column::poseidon2_full_a_0, Column::poseidon2_full_a_1, Column::poseidon2_full_a_2, Column::poseidon2_full_a_3, Column::poseidon2_full_execute_poseidon_perm, Column::poseidon2_full_input_0, Column::poseidon2_full_input_1, Column::poseidon2_full_input_2, Column::poseidon2_full_num_perm_rounds_rem, Column::poseidon2_full_sel_poseidon, Column::poseidon2_full_start_poseidon, Column::slice_addr, Column::slice_clk, Column::slice_cnt, Column::slice_sel_cd_cpy, Column::slice_sel_mem_active, Column::slice_sel_return, Column::slice_sel_start, Column::slice_space_id #define AVM_SHIFTED_COLUMNS ColumnAndShifts::binary_acc_ia_shift, ColumnAndShifts::binary_acc_ib_shift, ColumnAndShifts::binary_acc_ic_shift, ColumnAndShifts::binary_mem_tag_ctr_shift, ColumnAndShifts::binary_op_id_shift, ColumnAndShifts::cmp_a_hi_shift, ColumnAndShifts::cmp_a_lo_shift, ColumnAndShifts::cmp_b_hi_shift, ColumnAndShifts::cmp_b_lo_shift, ColumnAndShifts::cmp_cmp_rng_ctr_shift, ColumnAndShifts::cmp_op_gt_shift, ColumnAndShifts::cmp_p_sub_a_hi_shift, ColumnAndShifts::cmp_p_sub_a_lo_shift, ColumnAndShifts::cmp_p_sub_b_hi_shift, ColumnAndShifts::cmp_p_sub_b_lo_shift, ColumnAndShifts::cmp_sel_rng_chk_shift, ColumnAndShifts::main_da_gas_remaining_shift, ColumnAndShifts::main_l2_gas_remaining_shift, ColumnAndShifts::main_pc_shift, ColumnAndShifts::main_sel_execution_end_shift, ColumnAndShifts::main_sel_execution_row_shift, ColumnAndShifts::mem_glob_addr_shift, ColumnAndShifts::mem_rw_shift, ColumnAndShifts::mem_sel_mem_shift, ColumnAndShifts::mem_tag_shift, ColumnAndShifts::mem_tsp_shift, ColumnAndShifts::mem_val_shift, ColumnAndShifts::merkle_tree_leaf_index_shift, ColumnAndShifts::merkle_tree_leaf_value_shift, ColumnAndShifts::merkle_tree_path_len_shift, ColumnAndShifts::poseidon2_full_a_0_shift, ColumnAndShifts::poseidon2_full_a_1_shift, ColumnAndShifts::poseidon2_full_a_2_shift, ColumnAndShifts::poseidon2_full_a_3_shift, ColumnAndShifts::poseidon2_full_execute_poseidon_perm_shift, ColumnAndShifts::poseidon2_full_input_0_shift, ColumnAndShifts::poseidon2_full_input_1_shift, ColumnAndShifts::poseidon2_full_input_2_shift, ColumnAndShifts::poseidon2_full_num_perm_rounds_rem_shift, ColumnAndShifts::poseidon2_full_sel_poseidon_shift, ColumnAndShifts::poseidon2_full_start_poseidon_shift, ColumnAndShifts::slice_addr_shift, ColumnAndShifts::slice_clk_shift, ColumnAndShifts::slice_cnt_shift, ColumnAndShifts::slice_sel_cd_cpy_shift, ColumnAndShifts::slice_sel_mem_active_shift, ColumnAndShifts::slice_sel_return_shift, ColumnAndShifts::slice_sel_start_shift, ColumnAndShifts::slice_space_id_shift diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp index 7cebe6c3ae1..0f9307bfd12 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/flavor.hpp @@ -13,6 +13,7 @@ #include "barretenberg/transcript/transcript.hpp" #include "barretenberg/vm/aztec_constants.hpp" +#include "barretenberg/vm2/common/macros.hpp" #include "columns.hpp" #include "flavor_settings.hpp" @@ -52,6 +53,19 @@ // Metaprogramming to concatenate tuple types. template using tuple_cat_t = decltype(std::tuple_cat(std::declval()...)); +// clang-format off +// These getters are used to speedup logderivative inverses. +// See https://github.com/AztecProtocol/aztec-packages/pull/11605/ for a full explanation. +#define DEFAULT_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return ENTITY; } \ + inline auto& _##ENTITY() const { return ENTITY; } +#define ROW_PROXY_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return pp.ENTITY[row_idx]; } \ + inline auto& _##ENTITY() const { return pp.ENTITY[row_idx]; } +#define DEFINE_GETTERS(GETTER_MACRO, ENTITIES) \ + FOR_EACH(GETTER_MACRO, ENTITIES) +// clang-format on + namespace bb::avm { class AvmFlavor { @@ -210,32 +224,29 @@ class AvmFlavor { "AVM circuit. In this case, modify AVM_VERIFICATION_LENGTH_IN_FIELDS \n" "in constants.nr accordingly."); - template class PrecomputedEntities : public PrecomputedEntitiesBase { + template class PrecomputedEntities : public PrecomputedEntitiesBase { public: - using DataType = DataType_; - DEFINE_FLAVOR_MEMBERS(DataType, AVM_PRECOMPUTED_ENTITIES) - - RefVector get_selectors() { return get_all(); } - RefVector get_sigma_polynomials() { return {}; } - RefVector get_id_polynomials() { return {}; } - RefVector get_table_polynomials() { return {}; } + DEFINE_GETTERS(DEFAULT_GETTERS, AVM_PRECOMPUTED_ENTITIES) }; private: template class WireEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM_WIRE_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM_WIRE_ENTITIES) }; template class DerivedWitnessEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM_DERIVED_WITNESS_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM_DERIVED_WITNESS_ENTITIES) }; template class ShiftedEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM_SHIFTED_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM_SHIFTED_ENTITIES) }; template @@ -341,12 +352,26 @@ class AvmFlavor { using Base::Base; }; + // Only used by VM1 check_circuit. Remove. class AllConstRefValues { public: using BaseDataType = const FF; using DataType = BaseDataType&; - DEFINE_FLAVOR_MEMBERS(DataType, AVM_ALL_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM_ALL_ENTITIES) + }; + + template class PolynomialEntitiesAtFixedRow { + public: + PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials& pp) + : row_idx(row_idx) + , pp(pp) + {} + DEFINE_GETTERS(ROW_PROXY_GETTERS, AVM_ALL_ENTITIES) + + private: + const size_t row_idx; + const Polynomials& pp; }; /** @@ -365,12 +390,14 @@ class AvmFlavor { ProverPolynomials(ProvingKey& proving_key); size_t get_polynomial_size() const { return main_kernel_inputs.size(); } - AllConstRefValues get_row(size_t row_idx) const + // This is only used in VM1 check_circuit. Remove. + AllConstRefValues get_standard_row(size_t row_idx) const { return [row_idx](auto&... entities) -> AllConstRefValues { return { entities[row_idx]... }; }(AVM_ALL_ENTITIES); } + auto get_row(size_t row_idx) const { return PolynomialEntitiesAtFixedRow(row_idx, *this); } }; class PartiallyEvaluatedMultivariates : public AllEntities { diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_alu.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_alu.hpp index 132493637f2..3ab5f494003 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_alu.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_alu.hpp @@ -34,15 +34,15 @@ class lookup_pow_2_0_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.alu_sel_shift_which == 1 || in.main_sel_rng_8 == 1); + return (in._alu_sel_shift_which() == 1 || in._main_sel_rng_8() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.alu_sel_shift_which); - const auto is_table_entry = View(in.main_sel_rng_8); + const auto is_operation = View(in._alu_sel_shift_which()); + const auto is_table_entry = View(in._main_sel_rng_8()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -58,14 +58,14 @@ class lookup_pow_2_0_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_pow_2_0_inv, - in.lookup_pow_2_0_counts, - in.alu_sel_shift_which, - in.main_sel_rng_8, - in.alu_ib, - in.alu_b_pow, - in.main_clk, - in.powers_power_of_2); + return std::forward_as_tuple(in._lookup_pow_2_0_inv(), + in._lookup_pow_2_0_counts(), + in._alu_sel_shift_which(), + in._main_sel_rng_8(), + in._alu_ib(), + in._alu_b_pow(), + in._main_clk(), + in._powers_power_of_2()); } }; @@ -101,15 +101,15 @@ class lookup_pow_2_1_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.alu_sel_shift_which == 1 || in.main_sel_rng_8 == 1); + return (in._alu_sel_shift_which() == 1 || in._main_sel_rng_8() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.alu_sel_shift_which); - const auto is_table_entry = View(in.main_sel_rng_8); + const auto is_operation = View(in._alu_sel_shift_which()); + const auto is_table_entry = View(in._main_sel_rng_8()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -125,14 +125,14 @@ class lookup_pow_2_1_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_pow_2_1_inv, - in.lookup_pow_2_1_counts, - in.alu_sel_shift_which, - in.main_sel_rng_8, - in.alu_max_bits_sub_b_bits, - in.alu_max_bits_sub_b_pow, - in.main_clk, - in.powers_power_of_2); + return std::forward_as_tuple(in._lookup_pow_2_1_inv(), + in._lookup_pow_2_1_counts(), + in._alu_sel_shift_which(), + in._main_sel_rng_8(), + in._alu_max_bits_sub_b_bits(), + in._alu_max_bits_sub_b_pow(), + in._main_clk(), + in._powers_power_of_2()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_binary.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_binary.hpp index dbb26b46b6d..29a927783bd 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_binary.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_binary.hpp @@ -35,15 +35,15 @@ class lookup_byte_lengths_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.binary_start == 1 || in.byte_lookup_sel_bin == 1); + return (in._binary_start() == 1 || in._byte_lookup_sel_bin() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.binary_start); - const auto is_table_entry = View(in.byte_lookup_sel_bin); + const auto is_operation = View(in._binary_start()); + const auto is_table_entry = View(in._byte_lookup_sel_bin()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -59,14 +59,14 @@ class lookup_byte_lengths_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_byte_lengths_inv, - in.lookup_byte_lengths_counts, - in.binary_start, - in.byte_lookup_sel_bin, - in.binary_in_tag, - in.binary_mem_tag_ctr, - in.byte_lookup_table_in_tags, - in.byte_lookup_table_byte_lengths); + return std::forward_as_tuple(in._lookup_byte_lengths_inv(), + in._lookup_byte_lengths_counts(), + in._binary_start(), + in._byte_lookup_sel_bin(), + in._binary_in_tag(), + in._binary_mem_tag_ctr(), + in._byte_lookup_table_in_tags(), + in._byte_lookup_table_byte_lengths()); } }; @@ -105,15 +105,15 @@ class lookup_byte_operations_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.binary_sel_bin == 1 || in.byte_lookup_sel_bin == 1); + return (in._binary_sel_bin() == 1 || in._byte_lookup_sel_bin() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.binary_sel_bin); - const auto is_table_entry = View(in.byte_lookup_sel_bin); + const auto is_operation = View(in._binary_sel_bin()); + const auto is_table_entry = View(in._byte_lookup_sel_bin()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -129,18 +129,18 @@ class lookup_byte_operations_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_byte_operations_inv, - in.lookup_byte_operations_counts, - in.binary_sel_bin, - in.byte_lookup_sel_bin, - in.binary_op_id, - in.binary_ia_bytes, - in.binary_ib_bytes, - in.binary_ic_bytes, - in.byte_lookup_table_op_id, - in.byte_lookup_table_input_a, - in.byte_lookup_table_input_b, - in.byte_lookup_table_output); + return std::forward_as_tuple(in._lookup_byte_operations_inv(), + in._lookup_byte_operations_counts(), + in._binary_sel_bin(), + in._byte_lookup_sel_bin(), + in._binary_op_id(), + in._binary_ia_bytes(), + in._binary_ib_bytes(), + in._binary_ic_bytes(), + in._byte_lookup_table_op_id(), + in._byte_lookup_table_input_a(), + in._byte_lookup_table_input_b(), + in._byte_lookup_table_output()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_gas.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_gas.hpp index 2493238745c..5a47f4a6a12 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_gas.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_gas.hpp @@ -41,15 +41,15 @@ class lookup_opcode_gas_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_is_gas_accounted == 1 || in.gas_sel_gas_cost == 1); + return (in._main_is_gas_accounted() == 1 || in._gas_sel_gas_cost() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_is_gas_accounted); - const auto is_table_entry = View(in.gas_sel_gas_cost); + const auto is_operation = View(in._main_is_gas_accounted()); + const auto is_table_entry = View(in._gas_sel_gas_cost()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -65,20 +65,20 @@ class lookup_opcode_gas_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_opcode_gas_inv, - in.lookup_opcode_gas_counts, - in.main_is_gas_accounted, - in.gas_sel_gas_cost, - in.main_opcode_val, - in.main_base_l2_gas_op_cost, - in.main_base_da_gas_op_cost, - in.main_dyn_l2_gas_op_cost, - in.main_dyn_da_gas_op_cost, - in.main_clk, - in.gas_base_l2_gas_fixed_table, - in.gas_base_da_gas_fixed_table, - in.gas_dyn_l2_gas_fixed_table, - in.gas_dyn_da_gas_fixed_table); + return std::forward_as_tuple(in._lookup_opcode_gas_inv(), + in._lookup_opcode_gas_counts(), + in._main_is_gas_accounted(), + in._gas_sel_gas_cost(), + in._main_opcode_val(), + in._main_base_l2_gas_op_cost(), + in._main_base_da_gas_op_cost(), + in._main_dyn_l2_gas_op_cost(), + in._main_dyn_da_gas_op_cost(), + in._main_clk(), + in._gas_base_l2_gas_fixed_table(), + in._gas_base_da_gas_fixed_table(), + in._gas_dyn_l2_gas_fixed_table(), + in._gas_dyn_da_gas_fixed_table()); } }; @@ -112,15 +112,15 @@ class lookup_l2_gas_rng_chk_0_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_is_gas_accounted == 1 || in.main_sel_rng_16 == 1); + return (in._main_is_gas_accounted() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_is_gas_accounted); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._main_is_gas_accounted()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -136,12 +136,12 @@ class lookup_l2_gas_rng_chk_0_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_l2_gas_rng_chk_0_inv, - in.lookup_l2_gas_rng_chk_0_counts, - in.main_is_gas_accounted, - in.main_sel_rng_16, - in.main_l2_gas_u16_r0, - in.main_clk); + return std::forward_as_tuple(in._lookup_l2_gas_rng_chk_0_inv(), + in._lookup_l2_gas_rng_chk_0_counts(), + in._main_is_gas_accounted(), + in._main_sel_rng_16(), + in._main_l2_gas_u16_r0(), + in._main_clk()); } }; @@ -175,15 +175,15 @@ class lookup_l2_gas_rng_chk_1_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_is_gas_accounted == 1 || in.main_sel_rng_16 == 1); + return (in._main_is_gas_accounted() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_is_gas_accounted); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._main_is_gas_accounted()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -199,12 +199,12 @@ class lookup_l2_gas_rng_chk_1_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_l2_gas_rng_chk_1_inv, - in.lookup_l2_gas_rng_chk_1_counts, - in.main_is_gas_accounted, - in.main_sel_rng_16, - in.main_l2_gas_u16_r1, - in.main_clk); + return std::forward_as_tuple(in._lookup_l2_gas_rng_chk_1_inv(), + in._lookup_l2_gas_rng_chk_1_counts(), + in._main_is_gas_accounted(), + in._main_sel_rng_16(), + in._main_l2_gas_u16_r1(), + in._main_clk()); } }; @@ -238,15 +238,15 @@ class lookup_da_gas_rng_chk_0_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_is_gas_accounted == 1 || in.main_sel_rng_16 == 1); + return (in._main_is_gas_accounted() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_is_gas_accounted); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._main_is_gas_accounted()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -262,12 +262,12 @@ class lookup_da_gas_rng_chk_0_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_da_gas_rng_chk_0_inv, - in.lookup_da_gas_rng_chk_0_counts, - in.main_is_gas_accounted, - in.main_sel_rng_16, - in.main_da_gas_u16_r0, - in.main_clk); + return std::forward_as_tuple(in._lookup_da_gas_rng_chk_0_inv(), + in._lookup_da_gas_rng_chk_0_counts(), + in._main_is_gas_accounted(), + in._main_sel_rng_16(), + in._main_da_gas_u16_r0(), + in._main_clk()); } }; @@ -301,15 +301,15 @@ class lookup_da_gas_rng_chk_1_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_is_gas_accounted == 1 || in.main_sel_rng_16 == 1); + return (in._main_is_gas_accounted() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_is_gas_accounted); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._main_is_gas_accounted()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -325,12 +325,12 @@ class lookup_da_gas_rng_chk_1_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_da_gas_rng_chk_1_inv, - in.lookup_da_gas_rng_chk_1_counts, - in.main_is_gas_accounted, - in.main_sel_rng_16, - in.main_da_gas_u16_r1, - in.main_clk); + return std::forward_as_tuple(in._lookup_da_gas_rng_chk_1_inv(), + in._lookup_da_gas_rng_chk_1_counts(), + in._main_is_gas_accounted(), + in._main_sel_rng_16(), + in._main_da_gas_u16_r1(), + in._main_clk()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_main.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_main.hpp index d865c9ae363..0736f0f0591 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_main.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_main.hpp @@ -33,15 +33,15 @@ class incl_main_tag_err_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.mem_tag_err == 1 || in.main_tag_err == 1); + return (in._mem_tag_err() == 1 || in._main_tag_err() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.mem_tag_err); - const auto is_table_entry = View(in.main_tag_err); + const auto is_operation = View(in._mem_tag_err()); + const auto is_table_entry = View(in._main_tag_err()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -57,12 +57,12 @@ class incl_main_tag_err_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.incl_main_tag_err_inv, - in.incl_main_tag_err_counts, - in.mem_tag_err, - in.main_tag_err, - in.mem_clk, - in.main_clk); + return std::forward_as_tuple(in._incl_main_tag_err_inv(), + in._incl_main_tag_err_counts(), + in._mem_tag_err(), + in._main_tag_err(), + in._mem_clk(), + in._main_clk()); } }; @@ -96,15 +96,15 @@ class incl_mem_tag_err_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_tag_err == 1 || in.mem_tag_err == 1); + return (in._main_tag_err() == 1 || in._mem_tag_err() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.main_tag_err); - const auto is_table_entry = View(in.mem_tag_err); + const auto is_operation = View(in._main_tag_err()); + const auto is_table_entry = View(in._mem_tag_err()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -120,12 +120,12 @@ class incl_mem_tag_err_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.incl_mem_tag_err_inv, - in.incl_mem_tag_err_counts, - in.main_tag_err, - in.mem_tag_err, - in.main_clk, - in.mem_clk); + return std::forward_as_tuple(in._incl_mem_tag_err_inv(), + in._incl_mem_tag_err_counts(), + in._main_tag_err(), + in._mem_tag_err(), + in._main_clk(), + in._mem_clk()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem.hpp index 25913ff2107..8f0bc95b744 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem.hpp @@ -33,15 +33,15 @@ class lookup_mem_rng_chk_0_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.mem_sel_rng_chk == 1 || in.main_sel_rng_16 == 1); + return (in._mem_sel_rng_chk() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.mem_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._mem_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -57,12 +57,12 @@ class lookup_mem_rng_chk_0_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_mem_rng_chk_0_inv, - in.lookup_mem_rng_chk_0_counts, - in.mem_sel_rng_chk, - in.main_sel_rng_16, - in.mem_u16_r0, - in.main_clk); + return std::forward_as_tuple(in._lookup_mem_rng_chk_0_inv(), + in._lookup_mem_rng_chk_0_counts(), + in._mem_sel_rng_chk(), + in._main_sel_rng_16(), + in._mem_u16_r0(), + in._main_clk()); } }; @@ -96,15 +96,15 @@ class lookup_mem_rng_chk_1_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.mem_sel_rng_chk == 1 || in.main_sel_rng_16 == 1); + return (in._mem_sel_rng_chk() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.mem_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._mem_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -120,12 +120,12 @@ class lookup_mem_rng_chk_1_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_mem_rng_chk_1_inv, - in.lookup_mem_rng_chk_1_counts, - in.mem_sel_rng_chk, - in.main_sel_rng_16, - in.mem_u16_r1, - in.main_clk); + return std::forward_as_tuple(in._lookup_mem_rng_chk_1_inv(), + in._lookup_mem_rng_chk_1_counts(), + in._mem_sel_rng_chk(), + in._main_sel_rng_16(), + in._mem_u16_r1(), + in._main_clk()); } }; @@ -159,15 +159,15 @@ class lookup_mem_rng_chk_2_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.mem_sel_rng_chk == 1 || in.main_sel_rng_8 == 1); + return (in._mem_sel_rng_chk() == 1 || in._main_sel_rng_8() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.mem_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_8); + const auto is_operation = View(in._mem_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_8()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -183,12 +183,12 @@ class lookup_mem_rng_chk_2_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_mem_rng_chk_2_inv, - in.lookup_mem_rng_chk_2_counts, - in.mem_sel_rng_chk, - in.main_sel_rng_8, - in.mem_u8_r0, - in.main_clk); + return std::forward_as_tuple(in._lookup_mem_rng_chk_2_inv(), + in._lookup_mem_rng_chk_2_counts(), + in._mem_sel_rng_chk(), + in._main_sel_rng_8(), + in._mem_u8_r0(), + in._main_clk()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem_slice.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem_slice.hpp index 023ac08c007..20b629bc9b5 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem_slice.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_mem_slice.hpp @@ -34,15 +34,15 @@ class lookup_cd_value_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.slice_sel_cd_cpy == 1 || in.main_sel_calldata == 1); + return (in._slice_sel_cd_cpy() == 1 || in._main_sel_calldata() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.slice_sel_cd_cpy); - const auto is_table_entry = View(in.main_sel_calldata); + const auto is_operation = View(in._slice_sel_cd_cpy()); + const auto is_table_entry = View(in._main_sel_calldata()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -58,14 +58,14 @@ class lookup_cd_value_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_cd_value_inv, - in.lookup_cd_value_counts, - in.slice_sel_cd_cpy, - in.main_sel_calldata, - in.slice_col_offset, - in.slice_val, - in.main_clk, - in.main_calldata); + return std::forward_as_tuple(in._lookup_cd_value_inv(), + in._lookup_cd_value_counts(), + in._slice_sel_cd_cpy(), + in._main_sel_calldata(), + in._slice_col_offset(), + in._slice_val(), + in._main_clk(), + in._main_calldata()); } }; @@ -100,15 +100,15 @@ class lookup_ret_value_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.slice_sel_return == 1 || in.main_sel_returndata == 1); + return (in._slice_sel_return() == 1 || in._main_sel_returndata() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.slice_sel_return); - const auto is_table_entry = View(in.main_sel_returndata); + const auto is_operation = View(in._slice_sel_return()); + const auto is_table_entry = View(in._main_sel_returndata()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -124,14 +124,14 @@ class lookup_ret_value_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_ret_value_inv, - in.lookup_ret_value_counts, - in.slice_sel_return, - in.main_sel_returndata, - in.slice_col_offset, - in.slice_val, - in.main_clk, - in.main_returndata); + return std::forward_as_tuple(in._lookup_ret_value_inv(), + in._lookup_ret_value_counts(), + in._slice_sel_return(), + in._main_sel_returndata(), + in._slice_col_offset(), + in._slice_val(), + in._main_clk(), + in._main_returndata()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_range_check.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_range_check.hpp index 48292df3402..bc264db8322 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_range_check.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/lookups_range_check.hpp @@ -35,15 +35,15 @@ class lookup_rng_chk_pow_2_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_rng_chk == 1 || in.main_sel_rng_8 == 1); + return (in._range_check_sel_rng_chk() == 1 || in._main_sel_rng_8() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_8); + const auto is_operation = View(in._range_check_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_8()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -59,14 +59,14 @@ class lookup_rng_chk_pow_2_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_pow_2_inv, - in.lookup_rng_chk_pow_2_counts, - in.range_check_sel_rng_chk, - in.main_sel_rng_8, - in.range_check_dyn_rng_chk_bits, - in.range_check_dyn_rng_chk_pow_2, - in.main_clk, - in.powers_power_of_2); + return std::forward_as_tuple(in._lookup_rng_chk_pow_2_inv(), + in._lookup_rng_chk_pow_2_counts(), + in._range_check_sel_rng_chk(), + in._main_sel_rng_8(), + in._range_check_dyn_rng_chk_bits(), + in._range_check_dyn_rng_chk_pow_2(), + in._main_clk(), + in._powers_power_of_2()); } }; @@ -100,15 +100,15 @@ class lookup_rng_chk_diff_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_rng_chk == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_rng_chk() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -124,12 +124,12 @@ class lookup_rng_chk_diff_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_diff_inv, - in.lookup_rng_chk_diff_counts, - in.range_check_sel_rng_chk, - in.main_sel_rng_16, - in.range_check_dyn_diff, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_diff_inv(), + in._lookup_rng_chk_diff_counts(), + in._range_check_sel_rng_chk(), + in._main_sel_rng_16(), + in._range_check_dyn_diff(), + in._main_clk()); } }; @@ -163,15 +163,15 @@ class lookup_rng_chk_0_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_0 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_0() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_0); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_0()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -187,12 +187,12 @@ class lookup_rng_chk_0_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_0_inv, - in.lookup_rng_chk_0_counts, - in.range_check_sel_lookup_0, - in.main_sel_rng_16, - in.range_check_u16_r0, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_0_inv(), + in._lookup_rng_chk_0_counts(), + in._range_check_sel_lookup_0(), + in._main_sel_rng_16(), + in._range_check_u16_r0(), + in._main_clk()); } }; @@ -226,15 +226,15 @@ class lookup_rng_chk_1_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_1 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_1() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_1); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_1()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -250,12 +250,12 @@ class lookup_rng_chk_1_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_1_inv, - in.lookup_rng_chk_1_counts, - in.range_check_sel_lookup_1, - in.main_sel_rng_16, - in.range_check_u16_r1, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_1_inv(), + in._lookup_rng_chk_1_counts(), + in._range_check_sel_lookup_1(), + in._main_sel_rng_16(), + in._range_check_u16_r1(), + in._main_clk()); } }; @@ -289,15 +289,15 @@ class lookup_rng_chk_2_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_2 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_2() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_2); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_2()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -313,12 +313,12 @@ class lookup_rng_chk_2_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_2_inv, - in.lookup_rng_chk_2_counts, - in.range_check_sel_lookup_2, - in.main_sel_rng_16, - in.range_check_u16_r2, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_2_inv(), + in._lookup_rng_chk_2_counts(), + in._range_check_sel_lookup_2(), + in._main_sel_rng_16(), + in._range_check_u16_r2(), + in._main_clk()); } }; @@ -352,15 +352,15 @@ class lookup_rng_chk_3_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_3 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_3() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_3); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_3()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -376,12 +376,12 @@ class lookup_rng_chk_3_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_3_inv, - in.lookup_rng_chk_3_counts, - in.range_check_sel_lookup_3, - in.main_sel_rng_16, - in.range_check_u16_r3, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_3_inv(), + in._lookup_rng_chk_3_counts(), + in._range_check_sel_lookup_3(), + in._main_sel_rng_16(), + in._range_check_u16_r3(), + in._main_clk()); } }; @@ -415,15 +415,15 @@ class lookup_rng_chk_4_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_4 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_4() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_4); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_4()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -439,12 +439,12 @@ class lookup_rng_chk_4_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_4_inv, - in.lookup_rng_chk_4_counts, - in.range_check_sel_lookup_4, - in.main_sel_rng_16, - in.range_check_u16_r4, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_4_inv(), + in._lookup_rng_chk_4_counts(), + in._range_check_sel_lookup_4(), + in._main_sel_rng_16(), + in._range_check_u16_r4(), + in._main_clk()); } }; @@ -478,15 +478,15 @@ class lookup_rng_chk_5_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_5 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_5() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_5); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_5()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -502,12 +502,12 @@ class lookup_rng_chk_5_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_5_inv, - in.lookup_rng_chk_5_counts, - in.range_check_sel_lookup_5, - in.main_sel_rng_16, - in.range_check_u16_r5, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_5_inv(), + in._lookup_rng_chk_5_counts(), + in._range_check_sel_lookup_5(), + in._main_sel_rng_16(), + in._range_check_u16_r5(), + in._main_clk()); } }; @@ -541,15 +541,15 @@ class lookup_rng_chk_6_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_lookup_6 == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_lookup_6() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_lookup_6); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_lookup_6()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -565,12 +565,12 @@ class lookup_rng_chk_6_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_6_inv, - in.lookup_rng_chk_6_counts, - in.range_check_sel_lookup_6, - in.main_sel_rng_16, - in.range_check_u16_r6, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_6_inv(), + in._lookup_rng_chk_6_counts(), + in._range_check_sel_lookup_6(), + in._main_sel_rng_16(), + in._range_check_u16_r6(), + in._main_clk()); } }; @@ -604,15 +604,15 @@ class lookup_rng_chk_7_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_rng_chk == 1 || in.main_sel_rng_16 == 1); + return (in._range_check_sel_rng_chk() == 1 || in._main_sel_rng_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_rng_chk); - const auto is_table_entry = View(in.main_sel_rng_16); + const auto is_operation = View(in._range_check_sel_rng_chk()); + const auto is_table_entry = View(in._main_sel_rng_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -628,12 +628,12 @@ class lookup_rng_chk_7_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_7_inv, - in.lookup_rng_chk_7_counts, - in.range_check_sel_rng_chk, - in.main_sel_rng_16, - in.range_check_u16_r7, - in.main_clk); + return std::forward_as_tuple(in._lookup_rng_chk_7_inv(), + in._lookup_rng_chk_7_counts(), + in._range_check_sel_rng_chk(), + in._main_sel_rng_16(), + in._range_check_u16_r7(), + in._main_clk()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_alu.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_alu.hpp index 576292c3647..5d19861468c 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_alu.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_alu.hpp @@ -24,35 +24,35 @@ class perm_rng_alu_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_alu_rng_chk == 1 || in.alu_range_check_sel == 1); + return (in._range_check_alu_rng_chk() == 1 || in._alu_range_check_sel() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_alu_inv, - in.range_check_alu_rng_chk, - in.range_check_alu_rng_chk, - in.alu_range_check_sel, - in.range_check_clk, - in.range_check_value, - in.range_check_rng_chk_bits, - in.alu_clk, - in.alu_range_check_input_value, - in.alu_range_check_num_bits); + return std::forward_as_tuple(in._perm_rng_alu_inv(), + in._range_check_alu_rng_chk(), + in._range_check_alu_rng_chk(), + in._alu_range_check_sel(), + in._range_check_clk(), + in._range_check_value(), + in._range_check_rng_chk_bits(), + in._alu_clk(), + in._alu_range_check_input_value(), + in._alu_range_check_num_bits()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_alu_inv, - in.range_check_alu_rng_chk, - in.range_check_alu_rng_chk, - in.alu_range_check_sel, - in.range_check_clk, - in.range_check_value, - in.range_check_rng_chk_bits, - in.alu_clk, - in.alu_range_check_input_value, - in.alu_range_check_num_bits); + return std::forward_as_tuple(in._perm_rng_alu_inv(), + in._range_check_alu_rng_chk(), + in._range_check_alu_rng_chk(), + in._alu_range_check_sel(), + in._range_check_clk(), + in._range_check_value(), + in._range_check_rng_chk_bits(), + in._alu_clk(), + in._alu_range_check_input_value(), + in._alu_range_check_num_bits()); } }; @@ -77,51 +77,51 @@ class perm_cmp_alu_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.cmp_sel_cmp == 1 || in.alu_cmp_gadget_sel == 1); + return (in._cmp_sel_cmp() == 1 || in._alu_cmp_gadget_sel() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_cmp_alu_inv, - in.cmp_sel_cmp, - in.cmp_sel_cmp, - in.alu_cmp_gadget_sel, - in.cmp_clk, - in.cmp_input_a, - in.cmp_input_b, - in.cmp_result, - in.cmp_op_eq, - in.cmp_op_gt, - in.cmp_op_non_ff_gt, - in.alu_clk, - in.alu_cmp_gadget_input_a, - in.alu_cmp_gadget_input_b, - in.alu_cmp_gadget_result, - in.alu_op_eq, - in.alu_cmp_gadget_gt, - in.alu_cmp_gadget_non_ff_gt); + return std::forward_as_tuple(in._perm_cmp_alu_inv(), + in._cmp_sel_cmp(), + in._cmp_sel_cmp(), + in._alu_cmp_gadget_sel(), + in._cmp_clk(), + in._cmp_input_a(), + in._cmp_input_b(), + in._cmp_result(), + in._cmp_op_eq(), + in._cmp_op_gt(), + in._cmp_op_non_ff_gt(), + in._alu_clk(), + in._alu_cmp_gadget_input_a(), + in._alu_cmp_gadget_input_b(), + in._alu_cmp_gadget_result(), + in._alu_op_eq(), + in._alu_cmp_gadget_gt(), + in._alu_cmp_gadget_non_ff_gt()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_cmp_alu_inv, - in.cmp_sel_cmp, - in.cmp_sel_cmp, - in.alu_cmp_gadget_sel, - in.cmp_clk, - in.cmp_input_a, - in.cmp_input_b, - in.cmp_result, - in.cmp_op_eq, - in.cmp_op_gt, - in.cmp_op_non_ff_gt, - in.alu_clk, - in.alu_cmp_gadget_input_a, - in.alu_cmp_gadget_input_b, - in.alu_cmp_gadget_result, - in.alu_op_eq, - in.alu_cmp_gadget_gt, - in.alu_cmp_gadget_non_ff_gt); + return std::forward_as_tuple(in._perm_cmp_alu_inv(), + in._cmp_sel_cmp(), + in._cmp_sel_cmp(), + in._alu_cmp_gadget_sel(), + in._cmp_clk(), + in._cmp_input_a(), + in._cmp_input_b(), + in._cmp_result(), + in._cmp_op_eq(), + in._cmp_op_gt(), + in._cmp_op_non_ff_gt(), + in._alu_clk(), + in._alu_cmp_gadget_input_a(), + in._alu_cmp_gadget_input_b(), + in._alu_cmp_gadget_result(), + in._alu_op_eq(), + in._alu_cmp_gadget_gt(), + in._alu_cmp_gadget_non_ff_gt()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_cmp.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_cmp.hpp index 8f3f845ab66..d1308f03348 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_cmp.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_cmp.hpp @@ -24,31 +24,31 @@ class perm_rng_non_ff_cmp_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_cmp_non_ff_rng_chk == 1 || in.cmp_op_non_ff_gt == 1); + return (in._range_check_cmp_non_ff_rng_chk() == 1 || in._cmp_op_non_ff_gt() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_non_ff_cmp_inv, - in.range_check_cmp_non_ff_rng_chk, - in.range_check_cmp_non_ff_rng_chk, - in.cmp_op_non_ff_gt, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_diff); + return std::forward_as_tuple(in._perm_rng_non_ff_cmp_inv(), + in._range_check_cmp_non_ff_rng_chk(), + in._range_check_cmp_non_ff_rng_chk(), + in._cmp_op_non_ff_gt(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_diff()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_non_ff_cmp_inv, - in.range_check_cmp_non_ff_rng_chk, - in.range_check_cmp_non_ff_rng_chk, - in.cmp_op_non_ff_gt, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_diff); + return std::forward_as_tuple(in._perm_rng_non_ff_cmp_inv(), + in._range_check_cmp_non_ff_rng_chk(), + in._range_check_cmp_non_ff_rng_chk(), + in._cmp_op_non_ff_gt(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_diff()); } }; @@ -73,31 +73,31 @@ class perm_rng_cmp_lo_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_cmp_lo_bits_rng_chk == 1 || in.cmp_sel_rng_chk == 1); + return (in._range_check_cmp_lo_bits_rng_chk() == 1 || in._cmp_sel_rng_chk() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_cmp_lo_inv, - in.range_check_cmp_lo_bits_rng_chk, - in.range_check_cmp_lo_bits_rng_chk, - in.cmp_sel_rng_chk, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_a_lo); + return std::forward_as_tuple(in._perm_rng_cmp_lo_inv(), + in._range_check_cmp_lo_bits_rng_chk(), + in._range_check_cmp_lo_bits_rng_chk(), + in._cmp_sel_rng_chk(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_a_lo()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_cmp_lo_inv, - in.range_check_cmp_lo_bits_rng_chk, - in.range_check_cmp_lo_bits_rng_chk, - in.cmp_sel_rng_chk, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_a_lo); + return std::forward_as_tuple(in._perm_rng_cmp_lo_inv(), + in._range_check_cmp_lo_bits_rng_chk(), + in._range_check_cmp_lo_bits_rng_chk(), + in._cmp_sel_rng_chk(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_a_lo()); } }; @@ -122,31 +122,31 @@ class perm_rng_cmp_hi_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_cmp_hi_bits_rng_chk == 1 || in.cmp_sel_rng_chk == 1); + return (in._range_check_cmp_hi_bits_rng_chk() == 1 || in._cmp_sel_rng_chk() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_cmp_hi_inv, - in.range_check_cmp_hi_bits_rng_chk, - in.range_check_cmp_hi_bits_rng_chk, - in.cmp_sel_rng_chk, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_a_hi); + return std::forward_as_tuple(in._perm_rng_cmp_hi_inv(), + in._range_check_cmp_hi_bits_rng_chk(), + in._range_check_cmp_hi_bits_rng_chk(), + in._cmp_sel_rng_chk(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_a_hi()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_rng_cmp_hi_inv, - in.range_check_cmp_hi_bits_rng_chk, - in.range_check_cmp_hi_bits_rng_chk, - in.cmp_sel_rng_chk, - in.range_check_clk, - in.range_check_value, - in.cmp_range_chk_clk, - in.cmp_a_hi); + return std::forward_as_tuple(in._perm_rng_cmp_hi_inv(), + in._range_check_cmp_hi_bits_rng_chk(), + in._range_check_cmp_hi_bits_rng_chk(), + in._cmp_sel_rng_chk(), + in._range_check_clk(), + in._range_check_value(), + in._cmp_range_chk_clk(), + in._cmp_a_hi()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_main.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_main.hpp index 48e88c7069f..9185726aa7b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_main.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_main.hpp @@ -24,87 +24,87 @@ class perm_main_alu_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_alu == 1 || in.alu_sel_alu == 1); + return (in._main_sel_alu() == 1 || in._alu_sel_alu() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_alu_inv, - in.main_sel_alu, - in.main_sel_alu, - in.alu_sel_alu, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_sel_op_add, - in.main_sel_op_sub, - in.main_sel_op_mul, - in.main_sel_op_div, - in.main_sel_op_eq, - in.main_sel_op_not, - in.main_sel_op_cast, - in.main_sel_op_lt, - in.main_sel_op_lte, - in.main_sel_op_shr, - in.main_sel_op_shl, - in.main_alu_in_tag, - in.alu_clk, - in.alu_ia, - in.alu_ib, - in.alu_ic, - in.alu_op_add, - in.alu_op_sub, - in.alu_op_mul, - in.alu_op_div, - in.alu_op_eq, - in.alu_op_not, - in.alu_op_cast, - in.alu_op_lt, - in.alu_op_lte, - in.alu_op_shr, - in.alu_op_shl, - in.alu_in_tag); + return std::forward_as_tuple(in._perm_main_alu_inv(), + in._main_sel_alu(), + in._main_sel_alu(), + in._alu_sel_alu(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_sel_op_add(), + in._main_sel_op_sub(), + in._main_sel_op_mul(), + in._main_sel_op_div(), + in._main_sel_op_eq(), + in._main_sel_op_not(), + in._main_sel_op_cast(), + in._main_sel_op_lt(), + in._main_sel_op_lte(), + in._main_sel_op_shr(), + in._main_sel_op_shl(), + in._main_alu_in_tag(), + in._alu_clk(), + in._alu_ia(), + in._alu_ib(), + in._alu_ic(), + in._alu_op_add(), + in._alu_op_sub(), + in._alu_op_mul(), + in._alu_op_div(), + in._alu_op_eq(), + in._alu_op_not(), + in._alu_op_cast(), + in._alu_op_lt(), + in._alu_op_lte(), + in._alu_op_shr(), + in._alu_op_shl(), + in._alu_in_tag()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_alu_inv, - in.main_sel_alu, - in.main_sel_alu, - in.alu_sel_alu, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_sel_op_add, - in.main_sel_op_sub, - in.main_sel_op_mul, - in.main_sel_op_div, - in.main_sel_op_eq, - in.main_sel_op_not, - in.main_sel_op_cast, - in.main_sel_op_lt, - in.main_sel_op_lte, - in.main_sel_op_shr, - in.main_sel_op_shl, - in.main_alu_in_tag, - in.alu_clk, - in.alu_ia, - in.alu_ib, - in.alu_ic, - in.alu_op_add, - in.alu_op_sub, - in.alu_op_mul, - in.alu_op_div, - in.alu_op_eq, - in.alu_op_not, - in.alu_op_cast, - in.alu_op_lt, - in.alu_op_lte, - in.alu_op_shr, - in.alu_op_shl, - in.alu_in_tag); + return std::forward_as_tuple(in._perm_main_alu_inv(), + in._main_sel_alu(), + in._main_sel_alu(), + in._alu_sel_alu(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_sel_op_add(), + in._main_sel_op_sub(), + in._main_sel_op_mul(), + in._main_sel_op_div(), + in._main_sel_op_eq(), + in._main_sel_op_not(), + in._main_sel_op_cast(), + in._main_sel_op_lt(), + in._main_sel_op_lte(), + in._main_sel_op_shr(), + in._main_sel_op_shl(), + in._main_alu_in_tag(), + in._alu_clk(), + in._alu_ia(), + in._alu_ib(), + in._alu_ic(), + in._alu_op_add(), + in._alu_op_sub(), + in._alu_op_mul(), + in._alu_op_div(), + in._alu_op_eq(), + in._alu_op_not(), + in._alu_op_cast(), + in._alu_op_lt(), + in._alu_op_lte(), + in._alu_op_shr(), + in._alu_op_shl(), + in._alu_in_tag()); } }; @@ -129,47 +129,47 @@ class perm_main_bin_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_bin == 1 || in.binary_start == 1); + return (in._main_sel_bin() == 1 || in._binary_start() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_bin_inv, - in.main_sel_bin, - in.main_sel_bin, - in.binary_start, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_bin_op_id, - in.main_r_in_tag, - in.binary_clk, - in.binary_acc_ia, - in.binary_acc_ib, - in.binary_acc_ic, - in.binary_op_id, - in.binary_in_tag); + return std::forward_as_tuple(in._perm_main_bin_inv(), + in._main_sel_bin(), + in._main_sel_bin(), + in._binary_start(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_bin_op_id(), + in._main_r_in_tag(), + in._binary_clk(), + in._binary_acc_ia(), + in._binary_acc_ib(), + in._binary_acc_ic(), + in._binary_op_id(), + in._binary_in_tag()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_bin_inv, - in.main_sel_bin, - in.main_sel_bin, - in.binary_start, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_bin_op_id, - in.main_r_in_tag, - in.binary_clk, - in.binary_acc_ia, - in.binary_acc_ib, - in.binary_acc_ic, - in.binary_op_id, - in.binary_in_tag); + return std::forward_as_tuple(in._perm_main_bin_inv(), + in._main_sel_bin(), + in._main_sel_bin(), + in._binary_start(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_bin_op_id(), + in._main_r_in_tag(), + in._binary_clk(), + in._binary_acc_ia(), + in._binary_acc_ib(), + in._binary_acc_ic(), + in._binary_op_id(), + in._binary_in_tag()); } }; @@ -194,43 +194,43 @@ class perm_main_conv_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_op_radix_be == 1 || in.conversion_sel_to_radix_be == 1); + return (in._main_sel_op_radix_be() == 1 || in._conversion_sel_to_radix_be() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_conv_inv, - in.main_sel_op_radix_be, - in.main_sel_op_radix_be, - in.conversion_sel_to_radix_be, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_id, - in.conversion_clk, - in.conversion_input, - in.conversion_radix, - in.conversion_num_limbs, - in.conversion_output_bits); + return std::forward_as_tuple(in._perm_main_conv_inv(), + in._main_sel_op_radix_be(), + in._main_sel_op_radix_be(), + in._conversion_sel_to_radix_be(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_id(), + in._conversion_clk(), + in._conversion_input(), + in._conversion_radix(), + in._conversion_num_limbs(), + in._conversion_output_bits()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_conv_inv, - in.main_sel_op_radix_be, - in.main_sel_op_radix_be, - in.conversion_sel_to_radix_be, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.main_id, - in.conversion_clk, - in.conversion_input, - in.conversion_radix, - in.conversion_num_limbs, - in.conversion_output_bits); + return std::forward_as_tuple(in._perm_main_conv_inv(), + in._main_sel_op_radix_be(), + in._main_sel_op_radix_be(), + in._conversion_sel_to_radix_be(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._main_id(), + in._conversion_clk(), + in._conversion_input(), + in._conversion_radix(), + in._conversion_num_limbs(), + in._conversion_output_bits()); } }; @@ -255,39 +255,39 @@ class perm_main_sha256_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_op_sha256 == 1 || in.sha256_sel_sha256_compression == 1); + return (in._main_sel_op_sha256() == 1 || in._sha256_sel_sha256_compression() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_sha256_inv, - in.main_sel_op_sha256, - in.main_sel_op_sha256, - in.sha256_sel_sha256_compression, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.sha256_clk, - in.sha256_state, - in.sha256_input, - in.sha256_output); + return std::forward_as_tuple(in._perm_main_sha256_inv(), + in._main_sel_op_sha256(), + in._main_sel_op_sha256(), + in._sha256_sel_sha256_compression(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._sha256_clk(), + in._sha256_state(), + in._sha256_input(), + in._sha256_output()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_sha256_inv, - in.main_sel_op_sha256, - in.main_sel_op_sha256, - in.sha256_sel_sha256_compression, - in.main_clk, - in.main_ia, - in.main_ib, - in.main_ic, - in.sha256_clk, - in.sha256_state, - in.sha256_input, - in.sha256_output); + return std::forward_as_tuple(in._perm_main_sha256_inv(), + in._main_sel_op_sha256(), + in._main_sel_op_sha256(), + in._sha256_sel_sha256_compression(), + in._main_clk(), + in._main_ia(), + in._main_ib(), + in._main_ic(), + in._sha256_clk(), + in._sha256_state(), + in._sha256_input(), + in._sha256_output()); } }; @@ -312,39 +312,39 @@ class perm_main_pos2_perm_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_op_poseidon2 == 1 || in.poseidon2_sel_poseidon_perm == 1); + return (in._main_sel_op_poseidon2() == 1 || in._poseidon2_sel_poseidon_perm() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_pos2_perm_inv, - in.main_sel_op_poseidon2, - in.main_sel_op_poseidon2, - in.poseidon2_sel_poseidon_perm, - in.main_clk, - in.main_space_id, - in.main_mem_addr_a, - in.main_mem_addr_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_input_addr, - in.poseidon2_output_addr); + return std::forward_as_tuple(in._perm_main_pos2_perm_inv(), + in._main_sel_op_poseidon2(), + in._main_sel_op_poseidon2(), + in._poseidon2_sel_poseidon_perm(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_a(), + in._main_mem_addr_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_input_addr(), + in._poseidon2_output_addr()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_pos2_perm_inv, - in.main_sel_op_poseidon2, - in.main_sel_op_poseidon2, - in.poseidon2_sel_poseidon_perm, - in.main_clk, - in.main_space_id, - in.main_mem_addr_a, - in.main_mem_addr_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_input_addr, - in.poseidon2_output_addr); + return std::forward_as_tuple(in._perm_main_pos2_perm_inv(), + in._main_sel_op_poseidon2(), + in._main_sel_op_poseidon2(), + in._poseidon2_sel_poseidon_perm(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_a(), + in._main_mem_addr_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_input_addr(), + in._poseidon2_output_addr()); } }; @@ -369,55 +369,55 @@ class perm_main_mem_a_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_mem_op_a == 1 || in.mem_sel_op_a == 1); + return (in._main_sel_mem_op_a() == 1 || in._mem_sel_op_a() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_a_inv, - in.main_sel_mem_op_a, - in.main_sel_mem_op_a, - in.mem_sel_op_a, - in.main_clk, - in.main_space_id, - in.main_mem_addr_a, - in.main_ia, - in.main_rwa, - in.main_r_in_tag, - in.main_w_in_tag, - in.main_sel_mov_ia_to_ic, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag, - in.mem_sel_mov_ia_to_ic); + return std::forward_as_tuple(in._perm_main_mem_a_inv(), + in._main_sel_mem_op_a(), + in._main_sel_mem_op_a(), + in._mem_sel_op_a(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_a(), + in._main_ia(), + in._main_rwa(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._main_sel_mov_ia_to_ic(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag(), + in._mem_sel_mov_ia_to_ic()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_a_inv, - in.main_sel_mem_op_a, - in.main_sel_mem_op_a, - in.mem_sel_op_a, - in.main_clk, - in.main_space_id, - in.main_mem_addr_a, - in.main_ia, - in.main_rwa, - in.main_r_in_tag, - in.main_w_in_tag, - in.main_sel_mov_ia_to_ic, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag, - in.mem_sel_mov_ia_to_ic); + return std::forward_as_tuple(in._perm_main_mem_a_inv(), + in._main_sel_mem_op_a(), + in._main_sel_mem_op_a(), + in._mem_sel_op_a(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_a(), + in._main_ia(), + in._main_rwa(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._main_sel_mov_ia_to_ic(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag(), + in._mem_sel_mov_ia_to_ic()); } }; @@ -442,55 +442,55 @@ class perm_main_mem_b_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_mem_op_b == 1 || in.mem_sel_op_b == 1); + return (in._main_sel_mem_op_b() == 1 || in._mem_sel_op_b() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_b_inv, - in.main_sel_mem_op_b, - in.main_sel_mem_op_b, - in.mem_sel_op_b, - in.main_clk, - in.main_space_id, - in.main_mem_addr_b, - in.main_ib, - in.main_rwb, - in.main_r_in_tag, - in.main_w_in_tag, - in.main_sel_mov_ib_to_ic, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag, - in.mem_sel_mov_ib_to_ic); + return std::forward_as_tuple(in._perm_main_mem_b_inv(), + in._main_sel_mem_op_b(), + in._main_sel_mem_op_b(), + in._mem_sel_op_b(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_b(), + in._main_ib(), + in._main_rwb(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._main_sel_mov_ib_to_ic(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag(), + in._mem_sel_mov_ib_to_ic()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_b_inv, - in.main_sel_mem_op_b, - in.main_sel_mem_op_b, - in.mem_sel_op_b, - in.main_clk, - in.main_space_id, - in.main_mem_addr_b, - in.main_ib, - in.main_rwb, - in.main_r_in_tag, - in.main_w_in_tag, - in.main_sel_mov_ib_to_ic, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag, - in.mem_sel_mov_ib_to_ic); + return std::forward_as_tuple(in._perm_main_mem_b_inv(), + in._main_sel_mem_op_b(), + in._main_sel_mem_op_b(), + in._mem_sel_op_b(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_b(), + in._main_ib(), + in._main_rwb(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._main_sel_mov_ib_to_ic(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag(), + in._mem_sel_mov_ib_to_ic()); } }; @@ -515,51 +515,51 @@ class perm_main_mem_c_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_mem_op_c == 1 || in.mem_sel_op_c == 1); + return (in._main_sel_mem_op_c() == 1 || in._mem_sel_op_c() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_c_inv, - in.main_sel_mem_op_c, - in.main_sel_mem_op_c, - in.mem_sel_op_c, - in.main_clk, - in.main_space_id, - in.main_mem_addr_c, - in.main_ic, - in.main_rwc, - in.main_r_in_tag, - in.main_w_in_tag, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag); + return std::forward_as_tuple(in._perm_main_mem_c_inv(), + in._main_sel_mem_op_c(), + in._main_sel_mem_op_c(), + in._mem_sel_op_c(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_c(), + in._main_ic(), + in._main_rwc(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_c_inv, - in.main_sel_mem_op_c, - in.main_sel_mem_op_c, - in.mem_sel_op_c, - in.main_clk, - in.main_space_id, - in.main_mem_addr_c, - in.main_ic, - in.main_rwc, - in.main_r_in_tag, - in.main_w_in_tag, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag); + return std::forward_as_tuple(in._perm_main_mem_c_inv(), + in._main_sel_mem_op_c(), + in._main_sel_mem_op_c(), + in._mem_sel_op_c(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_c(), + in._main_ic(), + in._main_rwc(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag()); } }; @@ -584,51 +584,51 @@ class perm_main_mem_d_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_mem_op_d == 1 || in.mem_sel_op_d == 1); + return (in._main_sel_mem_op_d() == 1 || in._mem_sel_op_d() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_d_inv, - in.main_sel_mem_op_d, - in.main_sel_mem_op_d, - in.mem_sel_op_d, - in.main_clk, - in.main_space_id, - in.main_mem_addr_d, - in.main_id, - in.main_rwd, - in.main_r_in_tag, - in.main_w_in_tag, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag); + return std::forward_as_tuple(in._perm_main_mem_d_inv(), + in._main_sel_mem_op_d(), + in._main_sel_mem_op_d(), + in._mem_sel_op_d(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_d(), + in._main_id(), + in._main_rwd(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_d_inv, - in.main_sel_mem_op_d, - in.main_sel_mem_op_d, - in.mem_sel_op_d, - in.main_clk, - in.main_space_id, - in.main_mem_addr_d, - in.main_id, - in.main_rwd, - in.main_r_in_tag, - in.main_w_in_tag, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw, - in.mem_r_in_tag, - in.mem_w_in_tag); + return std::forward_as_tuple(in._perm_main_mem_d_inv(), + in._main_sel_mem_op_d(), + in._main_sel_mem_op_d(), + in._mem_sel_op_d(), + in._main_clk(), + in._main_space_id(), + in._main_mem_addr_d(), + in._main_id(), + in._main_rwd(), + in._main_r_in_tag(), + in._main_w_in_tag(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw(), + in._mem_r_in_tag(), + in._mem_w_in_tag()); } }; @@ -653,39 +653,39 @@ class perm_main_mem_ind_addr_a_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_resolve_ind_addr_a == 1 || in.mem_sel_resolve_ind_addr_a == 1); + return (in._main_sel_resolve_ind_addr_a() == 1 || in._mem_sel_resolve_ind_addr_a() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_a_inv, - in.main_sel_resolve_ind_addr_a, - in.main_sel_resolve_ind_addr_a, - in.mem_sel_resolve_ind_addr_a, - in.main_clk, - in.main_space_id, - in.main_ind_addr_a, - in.main_mem_addr_a, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_a_inv(), + in._main_sel_resolve_ind_addr_a(), + in._main_sel_resolve_ind_addr_a(), + in._mem_sel_resolve_ind_addr_a(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_a(), + in._main_mem_addr_a(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_a_inv, - in.main_sel_resolve_ind_addr_a, - in.main_sel_resolve_ind_addr_a, - in.mem_sel_resolve_ind_addr_a, - in.main_clk, - in.main_space_id, - in.main_ind_addr_a, - in.main_mem_addr_a, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_a_inv(), + in._main_sel_resolve_ind_addr_a(), + in._main_sel_resolve_ind_addr_a(), + in._mem_sel_resolve_ind_addr_a(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_a(), + in._main_mem_addr_a(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } }; @@ -712,39 +712,39 @@ class perm_main_mem_ind_addr_b_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_resolve_ind_addr_b == 1 || in.mem_sel_resolve_ind_addr_b == 1); + return (in._main_sel_resolve_ind_addr_b() == 1 || in._mem_sel_resolve_ind_addr_b() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_b_inv, - in.main_sel_resolve_ind_addr_b, - in.main_sel_resolve_ind_addr_b, - in.mem_sel_resolve_ind_addr_b, - in.main_clk, - in.main_space_id, - in.main_ind_addr_b, - in.main_mem_addr_b, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_b_inv(), + in._main_sel_resolve_ind_addr_b(), + in._main_sel_resolve_ind_addr_b(), + in._mem_sel_resolve_ind_addr_b(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_b(), + in._main_mem_addr_b(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_b_inv, - in.main_sel_resolve_ind_addr_b, - in.main_sel_resolve_ind_addr_b, - in.mem_sel_resolve_ind_addr_b, - in.main_clk, - in.main_space_id, - in.main_ind_addr_b, - in.main_mem_addr_b, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_b_inv(), + in._main_sel_resolve_ind_addr_b(), + in._main_sel_resolve_ind_addr_b(), + in._mem_sel_resolve_ind_addr_b(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_b(), + in._main_mem_addr_b(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } }; @@ -771,39 +771,39 @@ class perm_main_mem_ind_addr_c_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_resolve_ind_addr_c == 1 || in.mem_sel_resolve_ind_addr_c == 1); + return (in._main_sel_resolve_ind_addr_c() == 1 || in._mem_sel_resolve_ind_addr_c() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_c_inv, - in.main_sel_resolve_ind_addr_c, - in.main_sel_resolve_ind_addr_c, - in.mem_sel_resolve_ind_addr_c, - in.main_clk, - in.main_space_id, - in.main_ind_addr_c, - in.main_mem_addr_c, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_c_inv(), + in._main_sel_resolve_ind_addr_c(), + in._main_sel_resolve_ind_addr_c(), + in._mem_sel_resolve_ind_addr_c(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_c(), + in._main_mem_addr_c(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_c_inv, - in.main_sel_resolve_ind_addr_c, - in.main_sel_resolve_ind_addr_c, - in.mem_sel_resolve_ind_addr_c, - in.main_clk, - in.main_space_id, - in.main_ind_addr_c, - in.main_mem_addr_c, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_c_inv(), + in._main_sel_resolve_ind_addr_c(), + in._main_sel_resolve_ind_addr_c(), + in._mem_sel_resolve_ind_addr_c(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_c(), + in._main_mem_addr_c(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } }; @@ -830,39 +830,39 @@ class perm_main_mem_ind_addr_d_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.main_sel_resolve_ind_addr_d == 1 || in.mem_sel_resolve_ind_addr_d == 1); + return (in._main_sel_resolve_ind_addr_d() == 1 || in._mem_sel_resolve_ind_addr_d() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_d_inv, - in.main_sel_resolve_ind_addr_d, - in.main_sel_resolve_ind_addr_d, - in.mem_sel_resolve_ind_addr_d, - in.main_clk, - in.main_space_id, - in.main_ind_addr_d, - in.main_mem_addr_d, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_d_inv(), + in._main_sel_resolve_ind_addr_d(), + in._main_sel_resolve_ind_addr_d(), + in._mem_sel_resolve_ind_addr_d(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_d(), + in._main_mem_addr_d(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_main_mem_ind_addr_d_inv, - in.main_sel_resolve_ind_addr_d, - in.main_sel_resolve_ind_addr_d, - in.mem_sel_resolve_ind_addr_d, - in.main_clk, - in.main_space_id, - in.main_ind_addr_d, - in.main_mem_addr_d, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val); + return std::forward_as_tuple(in._perm_main_mem_ind_addr_d_inv(), + in._main_sel_resolve_ind_addr_d(), + in._main_sel_resolve_ind_addr_d(), + in._mem_sel_resolve_ind_addr_d(), + in._main_clk(), + in._main_space_id(), + in._main_ind_addr_d(), + in._main_mem_addr_d(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_mem_slice.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_mem_slice.hpp index 18dc1755acf..1346517a181 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_mem_slice.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_mem_slice.hpp @@ -24,43 +24,43 @@ class perm_slice_mem_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.slice_sel_mem_active == 1 || in.mem_sel_op_slice == 1); + return (in._slice_sel_mem_active() == 1 || in._mem_sel_op_slice() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_slice_mem_inv, - in.slice_sel_mem_active, - in.slice_sel_mem_active, - in.mem_sel_op_slice, - in.slice_clk, - in.slice_space_id, - in.slice_addr, - in.slice_val, - in.slice_sel_cd_cpy, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_slice_mem_inv(), + in._slice_sel_mem_active(), + in._slice_sel_mem_active(), + in._mem_sel_op_slice(), + in._slice_clk(), + in._slice_space_id(), + in._slice_addr(), + in._slice_val(), + in._slice_sel_cd_cpy(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_slice_mem_inv, - in.slice_sel_mem_active, - in.slice_sel_mem_active, - in.mem_sel_op_slice, - in.slice_clk, - in.slice_space_id, - in.slice_addr, - in.slice_val, - in.slice_sel_cd_cpy, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_slice_mem_inv(), + in._slice_sel_mem_active(), + in._slice_sel_mem_active(), + in._mem_sel_op_slice(), + in._slice_clk(), + in._slice_space_id(), + in._slice_addr(), + in._slice_val(), + in._slice_sel_cd_cpy(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_merkle_tree.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_merkle_tree.hpp index 93be92cbb72..efd19e83030 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_merkle_tree.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_merkle_tree.hpp @@ -24,39 +24,39 @@ class perm_merkle_poseidon2_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.merkle_tree_sel_merkle_tree == 1 || in.poseidon2_full_sel_merkle_tree == 1); + return (in._merkle_tree_sel_merkle_tree() == 1 || in._poseidon2_full_sel_merkle_tree() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_merkle_poseidon2_inv, - in.merkle_tree_sel_merkle_tree, - in.merkle_tree_sel_merkle_tree, - in.poseidon2_full_sel_merkle_tree, - in.merkle_tree_clk, - in.merkle_tree_left_hash, - in.merkle_tree_right_hash, - in.merkle_tree_output_hash, - in.poseidon2_full_clk, - in.poseidon2_full_input_0, - in.poseidon2_full_input_1, - in.poseidon2_full_output); + return std::forward_as_tuple(in._perm_merkle_poseidon2_inv(), + in._merkle_tree_sel_merkle_tree(), + in._merkle_tree_sel_merkle_tree(), + in._poseidon2_full_sel_merkle_tree(), + in._merkle_tree_clk(), + in._merkle_tree_left_hash(), + in._merkle_tree_right_hash(), + in._merkle_tree_output_hash(), + in._poseidon2_full_clk(), + in._poseidon2_full_input_0(), + in._poseidon2_full_input_1(), + in._poseidon2_full_output()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_merkle_poseidon2_inv, - in.merkle_tree_sel_merkle_tree, - in.merkle_tree_sel_merkle_tree, - in.poseidon2_full_sel_merkle_tree, - in.merkle_tree_clk, - in.merkle_tree_left_hash, - in.merkle_tree_right_hash, - in.merkle_tree_output_hash, - in.poseidon2_full_clk, - in.poseidon2_full_input_0, - in.poseidon2_full_input_1, - in.poseidon2_full_output); + return std::forward_as_tuple(in._perm_merkle_poseidon2_inv(), + in._merkle_tree_sel_merkle_tree(), + in._merkle_tree_sel_merkle_tree(), + in._poseidon2_full_sel_merkle_tree(), + in._merkle_tree_clk(), + in._merkle_tree_left_hash(), + in._merkle_tree_right_hash(), + in._merkle_tree_output_hash(), + in._poseidon2_full_clk(), + in._poseidon2_full_input_0(), + in._poseidon2_full_input_1(), + in._poseidon2_full_output()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2.hpp index a6718117504..0513879c0f5 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2.hpp @@ -24,43 +24,43 @@ class perm_pos_mem_read_a_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_read_a == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_read_a() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_a_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_a, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_a, - in.poseidon2_a_0, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_a_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_a(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_a(), + in._poseidon2_a_0(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_a_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_a, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_a, - in.poseidon2_a_0, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_a_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_a(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_a(), + in._poseidon2_a_0(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -85,43 +85,43 @@ class perm_pos_mem_read_b_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_read_b == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_read_b() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_b_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_b, - in.poseidon2_a_1, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_b_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_b(), + in._poseidon2_a_1(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_b_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_b, - in.poseidon2_a_1, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_b_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_b(), + in._poseidon2_a_1(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -146,43 +146,43 @@ class perm_pos_mem_read_c_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_read_c == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_read_c() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_c_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_c, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_c, - in.poseidon2_a_2, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_c_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_c(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_c(), + in._poseidon2_a_2(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_c_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_c, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_c, - in.poseidon2_a_2, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_c_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_c(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_c(), + in._poseidon2_a_2(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -207,43 +207,43 @@ class perm_pos_mem_read_d_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_read_d == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_read_d() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_d_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_d, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_d, - in.poseidon2_a_3, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_d_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_d(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_d(), + in._poseidon2_a_3(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_read_d_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_read_d, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_read_d, - in.poseidon2_a_3, - in.main_zeroes, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_read_d_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_read_d(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_read_d(), + in._poseidon2_a_3(), + in._main_zeroes(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -268,43 +268,43 @@ class perm_pos_mem_write_a_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_write_a == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_write_a() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_a_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_a, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_a, - in.poseidon2_b_0, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_a_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_a(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_a(), + in._poseidon2_b_0(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_a_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_a, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_a, - in.poseidon2_b_0, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_a_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_a(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_a(), + in._poseidon2_b_0(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -330,43 +330,43 @@ class perm_pos_mem_write_b_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_write_b == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_write_b() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_b_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_b, - in.poseidon2_b_1, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_b_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_b(), + in._poseidon2_b_1(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_b_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_b, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_b, - in.poseidon2_b_1, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_b_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_b(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_b(), + in._poseidon2_b_1(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -392,43 +392,43 @@ class perm_pos_mem_write_c_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_write_c == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_write_c() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_c_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_c, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_c, - in.poseidon2_b_2, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_c_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_c(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_c(), + in._poseidon2_b_2(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_c_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_c, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_c, - in.poseidon2_b_2, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_c_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_c(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_c(), + in._poseidon2_b_2(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; @@ -454,43 +454,43 @@ class perm_pos_mem_write_d_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_sel_poseidon_perm_mem_op == 1 || in.mem_sel_op_poseidon_write_d == 1); + return (in._poseidon2_sel_poseidon_perm_mem_op() == 1 || in._mem_sel_op_poseidon_write_d() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_d_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_d, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_d, - in.poseidon2_b_3, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_d_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_d(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_d(), + in._poseidon2_b_3(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos_mem_write_d_inv, - in.poseidon2_sel_poseidon_perm_mem_op, - in.poseidon2_sel_poseidon_perm_mem_op, - in.mem_sel_op_poseidon_write_d, - in.poseidon2_clk, - in.poseidon2_space_id, - in.poseidon2_mem_addr_write_d, - in.poseidon2_b_3, - in.poseidon2_sel_poseidon_perm, - in.mem_clk, - in.mem_space_id, - in.mem_addr, - in.mem_val, - in.mem_rw); + return std::forward_as_tuple(in._perm_pos_mem_write_d_inv(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._poseidon2_sel_poseidon_perm_mem_op(), + in._mem_sel_op_poseidon_write_d(), + in._poseidon2_clk(), + in._poseidon2_space_id(), + in._poseidon2_mem_addr_write_d(), + in._poseidon2_b_3(), + in._poseidon2_sel_poseidon_perm(), + in._mem_clk(), + in._mem_space_id(), + in._mem_addr(), + in._mem_val(), + in._mem_rw()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2_full.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2_full.hpp index 0758374bb70..f9f85cedef0 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2_full.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perms_poseidon2_full.hpp @@ -24,59 +24,59 @@ class perm_pos2_fixed_pos2_perm_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.poseidon2_full_sel_poseidon == 1 || in.poseidon2_sel_poseidon_perm_immediate == 1); + return (in._poseidon2_full_sel_poseidon() == 1 || in._poseidon2_sel_poseidon_perm_immediate() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_pos2_fixed_pos2_perm_inv, - in.poseidon2_full_sel_poseidon, - in.poseidon2_full_sel_poseidon, - in.poseidon2_sel_poseidon_perm_immediate, - in.poseidon2_full_clk, - in.poseidon2_full_a_0, - in.poseidon2_full_a_1, - in.poseidon2_full_a_2, - in.poseidon2_full_a_3, - in.poseidon2_full_b_0, - in.poseidon2_full_b_1, - in.poseidon2_full_b_2, - in.poseidon2_full_b_3, - in.poseidon2_clk, - in.poseidon2_a_0, - in.poseidon2_a_1, - in.poseidon2_a_2, - in.poseidon2_a_3, - in.poseidon2_b_0, - in.poseidon2_b_1, - in.poseidon2_b_2, - in.poseidon2_b_3); + return std::forward_as_tuple(in._perm_pos2_fixed_pos2_perm_inv(), + in._poseidon2_full_sel_poseidon(), + in._poseidon2_full_sel_poseidon(), + in._poseidon2_sel_poseidon_perm_immediate(), + in._poseidon2_full_clk(), + in._poseidon2_full_a_0(), + in._poseidon2_full_a_1(), + in._poseidon2_full_a_2(), + in._poseidon2_full_a_3(), + in._poseidon2_full_b_0(), + in._poseidon2_full_b_1(), + in._poseidon2_full_b_2(), + in._poseidon2_full_b_3(), + in._poseidon2_clk(), + in._poseidon2_a_0(), + in._poseidon2_a_1(), + in._poseidon2_a_2(), + in._poseidon2_a_3(), + in._poseidon2_b_0(), + in._poseidon2_b_1(), + in._poseidon2_b_2(), + in._poseidon2_b_3()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_pos2_fixed_pos2_perm_inv, - in.poseidon2_full_sel_poseidon, - in.poseidon2_full_sel_poseidon, - in.poseidon2_sel_poseidon_perm_immediate, - in.poseidon2_full_clk, - in.poseidon2_full_a_0, - in.poseidon2_full_a_1, - in.poseidon2_full_a_2, - in.poseidon2_full_a_3, - in.poseidon2_full_b_0, - in.poseidon2_full_b_1, - in.poseidon2_full_b_2, - in.poseidon2_full_b_3, - in.poseidon2_clk, - in.poseidon2_a_0, - in.poseidon2_a_1, - in.poseidon2_a_2, - in.poseidon2_a_3, - in.poseidon2_b_0, - in.poseidon2_b_1, - in.poseidon2_b_2, - in.poseidon2_b_3); + return std::forward_as_tuple(in._perm_pos2_fixed_pos2_perm_inv(), + in._poseidon2_full_sel_poseidon(), + in._poseidon2_full_sel_poseidon(), + in._poseidon2_sel_poseidon_perm_immediate(), + in._poseidon2_full_clk(), + in._poseidon2_full_a_0(), + in._poseidon2_full_a_1(), + in._poseidon2_full_a_2(), + in._poseidon2_full_a_3(), + in._poseidon2_full_b_0(), + in._poseidon2_full_b_1(), + in._poseidon2_full_b_2(), + in._poseidon2_full_b_3(), + in._poseidon2_clk(), + in._poseidon2_a_0(), + in._poseidon2_a_1(), + in._poseidon2_a_2(), + in._poseidon2_a_3(), + in._poseidon2_b_0(), + in._poseidon2_b_1(), + in._poseidon2_b_2(), + in._poseidon2_b_3()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/tests/full_poseidon2.test.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/tests/full_poseidon2.test.cpp index 61110c04744..1d808d28623 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/tests/full_poseidon2.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/tests/full_poseidon2.test.cpp @@ -67,7 +67,7 @@ TEST(AvmFullPoseidon2, shouldHashCorrectly) // We set the conditions up there. for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); } for (size_t j = 0; j < result.size(); ++j) { diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/tests/merkle_tree.test.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/tests/merkle_tree.test.cpp index 87156305e67..3b0f1c3cc92 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/tests/merkle_tree.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/tests/merkle_tree.test.cpp @@ -87,7 +87,7 @@ TEST(AvmMerkleTree, shouldCheckMembership) // We set the conditions up there. for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); } for (size_t j = 0; j < result.size(); ++j) { diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/tests/range_check.test.cpp b/barretenberg/cpp/src/barretenberg/vm/avm/tests/range_check.test.cpp index 9664717369c..41cdeb28594 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/tests/range_check.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/tests/range_check.test.cpp @@ -83,7 +83,7 @@ TEST(AvmRangeCheck, shouldRangeCheck) // We set the conditions up there. for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); } for (size_t j = 0; j < result.size(); ++j) { diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/macros.hpp b/barretenberg/cpp/src/barretenberg/vm2/common/macros.hpp new file mode 100644 index 00000000000..042c95d8843 --- /dev/null +++ b/barretenberg/cpp/src/barretenberg/vm2/common/macros.hpp @@ -0,0 +1,16 @@ +#pragma once + +// From https://www.scs.stanford.edu/~dm/blog/va-opt.html. +// The following defines a FOR_EACH recursive macro. +// It can be used as: FOR_EACH(macro, a1, a2, a3, ..., aN) +// If something starts failing when adding columns, add another layer here. +#define EXPAND(...) EXPAND5(EXPAND5(EXPAND5(EXPAND5(__VA_ARGS__)))) +#define EXPAND5(...) EXPAND4(EXPAND4(EXPAND4(EXPAND4(__VA_ARGS__)))) +#define EXPAND4(...) EXPAND3(EXPAND3(EXPAND3(EXPAND3(__VA_ARGS__)))) +#define EXPAND3(...) EXPAND2(EXPAND2(EXPAND2(EXPAND2(__VA_ARGS__)))) +#define EXPAND2(...) EXPAND1(EXPAND1(EXPAND1(EXPAND1(__VA_ARGS__)))) +#define EXPAND1(...) __VA_ARGS__ +#define PARENS () +#define FOR_EACH(macro, ...) __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__))) +#define FOR_EACH_HELPER(macro, a1, ...) macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__)) +#define FOR_EACH_AGAIN() FOR_EACH_HELPER \ No newline at end of file diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/check_circuit.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/check_circuit.cpp index 8ad43507f14..591804d61e8 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/check_circuit.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/check_circuit.cpp @@ -36,7 +36,8 @@ void run_check_circuit(AvmFlavor::ProverPolynomials& polys, size_t num_rows) typename Relation::SumcheckArrayOfValuesOverSubrelations result{}; for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + // TODO(fcarreiro): do not use standard row. + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); for (size_t j = 0; j < result.size(); ++j) { if (!result[j].is_zero()) { throw std::runtime_error(format("Relation ", diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp index 66e7db1eed4..f8e26fc14ee 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp @@ -16,6 +16,7 @@ namespace bb::avm2 { #define AVM2_TO_BE_SHIFTED(e) e.bc_decomposition_bytes, e.bc_decomposition_bytes_pc_plus_1, e.bc_decomposition_bytes_pc_plus_10, e.bc_decomposition_bytes_pc_plus_11, e.bc_decomposition_bytes_pc_plus_12, e.bc_decomposition_bytes_pc_plus_13, e.bc_decomposition_bytes_pc_plus_14, e.bc_decomposition_bytes_pc_plus_15, e.bc_decomposition_bytes_pc_plus_16, e.bc_decomposition_bytes_pc_plus_17, e.bc_decomposition_bytes_pc_plus_18, e.bc_decomposition_bytes_pc_plus_19, e.bc_decomposition_bytes_pc_plus_2, e.bc_decomposition_bytes_pc_plus_20, e.bc_decomposition_bytes_pc_plus_21, e.bc_decomposition_bytes_pc_plus_22, e.bc_decomposition_bytes_pc_plus_23, e.bc_decomposition_bytes_pc_plus_24, e.bc_decomposition_bytes_pc_plus_25, e.bc_decomposition_bytes_pc_plus_26, e.bc_decomposition_bytes_pc_plus_27, e.bc_decomposition_bytes_pc_plus_28, e.bc_decomposition_bytes_pc_plus_29, e.bc_decomposition_bytes_pc_plus_3, e.bc_decomposition_bytes_pc_plus_30, e.bc_decomposition_bytes_pc_plus_31, e.bc_decomposition_bytes_pc_plus_32, e.bc_decomposition_bytes_pc_plus_33, e.bc_decomposition_bytes_pc_plus_34, e.bc_decomposition_bytes_pc_plus_4, e.bc_decomposition_bytes_pc_plus_5, e.bc_decomposition_bytes_pc_plus_6, e.bc_decomposition_bytes_pc_plus_7, e.bc_decomposition_bytes_pc_plus_8, e.bc_decomposition_bytes_pc_plus_9, e.execution_sel, e.sha256_a, e.sha256_b, e.sha256_c, e.sha256_d, e.sha256_e, e.sha256_f, e.sha256_g, e.sha256_h, e.sha256_helper_w0, e.sha256_helper_w1, e.sha256_helper_w10, e.sha256_helper_w11, e.sha256_helper_w12, e.sha256_helper_w13, e.sha256_helper_w14, e.sha256_helper_w15, e.sha256_helper_w2, e.sha256_helper_w3, e.sha256_helper_w4, e.sha256_helper_w5, e.sha256_helper_w6, e.sha256_helper_w7, e.sha256_helper_w8, e.sha256_helper_w9, e.sha256_rounds_remaining, e.sha256_sel, e.sha256_start #define AVM2_ALL_ENTITIES AVM2_PRECOMPUTED_ENTITIES, AVM2_WIRE_ENTITIES, AVM2_DERIVED_WITNESS_ENTITIES, AVM2_SHIFTED_ENTITIES #define AVM2_UNSHIFTED_ENTITIES AVM2_PRECOMPUTED_ENTITIES, AVM2_WIRE_ENTITIES, AVM2_DERIVED_WITNESS_ENTITIES +#define AVM2_WITNESS_ENTITIES AVM2_WIRE_ENTITIES, AVM2_DERIVED_WITNESS_ENTITIES #define AVM2_TO_BE_SHIFTED_COLUMNS Column::bc_decomposition_bytes, Column::bc_decomposition_bytes_pc_plus_1, Column::bc_decomposition_bytes_pc_plus_10, Column::bc_decomposition_bytes_pc_plus_11, Column::bc_decomposition_bytes_pc_plus_12, Column::bc_decomposition_bytes_pc_plus_13, Column::bc_decomposition_bytes_pc_plus_14, Column::bc_decomposition_bytes_pc_plus_15, Column::bc_decomposition_bytes_pc_plus_16, Column::bc_decomposition_bytes_pc_plus_17, Column::bc_decomposition_bytes_pc_plus_18, Column::bc_decomposition_bytes_pc_plus_19, Column::bc_decomposition_bytes_pc_plus_2, Column::bc_decomposition_bytes_pc_plus_20, Column::bc_decomposition_bytes_pc_plus_21, Column::bc_decomposition_bytes_pc_plus_22, Column::bc_decomposition_bytes_pc_plus_23, Column::bc_decomposition_bytes_pc_plus_24, Column::bc_decomposition_bytes_pc_plus_25, Column::bc_decomposition_bytes_pc_plus_26, Column::bc_decomposition_bytes_pc_plus_27, Column::bc_decomposition_bytes_pc_plus_28, Column::bc_decomposition_bytes_pc_plus_29, Column::bc_decomposition_bytes_pc_plus_3, Column::bc_decomposition_bytes_pc_plus_30, Column::bc_decomposition_bytes_pc_plus_31, Column::bc_decomposition_bytes_pc_plus_32, Column::bc_decomposition_bytes_pc_plus_33, Column::bc_decomposition_bytes_pc_plus_34, Column::bc_decomposition_bytes_pc_plus_4, Column::bc_decomposition_bytes_pc_plus_5, Column::bc_decomposition_bytes_pc_plus_6, Column::bc_decomposition_bytes_pc_plus_7, Column::bc_decomposition_bytes_pc_plus_8, Column::bc_decomposition_bytes_pc_plus_9, Column::execution_sel, Column::sha256_a, Column::sha256_b, Column::sha256_c, Column::sha256_d, Column::sha256_e, Column::sha256_f, Column::sha256_g, Column::sha256_h, Column::sha256_helper_w0, Column::sha256_helper_w1, Column::sha256_helper_w10, Column::sha256_helper_w11, Column::sha256_helper_w12, Column::sha256_helper_w13, Column::sha256_helper_w14, Column::sha256_helper_w15, Column::sha256_helper_w2, Column::sha256_helper_w3, Column::sha256_helper_w4, Column::sha256_helper_w5, Column::sha256_helper_w6, Column::sha256_helper_w7, Column::sha256_helper_w8, Column::sha256_helper_w9, Column::sha256_rounds_remaining, Column::sha256_sel, Column::sha256_start #define AVM2_SHIFTED_COLUMNS ColumnAndShifts::bc_decomposition_bytes_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_1_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_10_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_11_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_12_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_13_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_14_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_15_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_16_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_17_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_18_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_19_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_2_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_20_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_21_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_22_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_23_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_24_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_25_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_26_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_27_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_28_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_29_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_3_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_30_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_31_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_32_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_33_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_34_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_4_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_5_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_6_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_7_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_8_shift, ColumnAndShifts::bc_decomposition_bytes_pc_plus_9_shift, ColumnAndShifts::execution_sel_shift, ColumnAndShifts::sha256_a_shift, ColumnAndShifts::sha256_b_shift, ColumnAndShifts::sha256_c_shift, ColumnAndShifts::sha256_d_shift, ColumnAndShifts::sha256_e_shift, ColumnAndShifts::sha256_f_shift, ColumnAndShifts::sha256_g_shift, ColumnAndShifts::sha256_h_shift, ColumnAndShifts::sha256_helper_w0_shift, ColumnAndShifts::sha256_helper_w1_shift, ColumnAndShifts::sha256_helper_w10_shift, ColumnAndShifts::sha256_helper_w11_shift, ColumnAndShifts::sha256_helper_w12_shift, ColumnAndShifts::sha256_helper_w13_shift, ColumnAndShifts::sha256_helper_w14_shift, ColumnAndShifts::sha256_helper_w15_shift, ColumnAndShifts::sha256_helper_w2_shift, ColumnAndShifts::sha256_helper_w3_shift, ColumnAndShifts::sha256_helper_w4_shift, ColumnAndShifts::sha256_helper_w5_shift, ColumnAndShifts::sha256_helper_w6_shift, ColumnAndShifts::sha256_helper_w7_shift, ColumnAndShifts::sha256_helper_w8_shift, ColumnAndShifts::sha256_helper_w9_shift, ColumnAndShifts::sha256_rounds_remaining_shift, ColumnAndShifts::sha256_sel_shift, ColumnAndShifts::sha256_start_shift diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor.hpp index 9fd089f212d..ac8d40f66a6 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor.hpp @@ -13,6 +13,7 @@ #include "barretenberg/transcript/transcript.hpp" #include "barretenberg/vm/aztec_constants.hpp" +#include "barretenberg/vm2/common/macros.hpp" #include "columns.hpp" #include "flavor_settings.hpp" @@ -35,6 +36,19 @@ // Metaprogramming to concatenate tuple types. template using tuple_cat_t = decltype(std::tuple_cat(std::declval()...)); +// clang-format off +// These getters are used to speedup logderivative inverses. +// See https://github.com/AztecProtocol/aztec-packages/pull/11605/ for a full explanation. +#define DEFAULT_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return ENTITY; } \ + inline auto& _##ENTITY() const { return ENTITY; } +#define ROW_PROXY_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return pp.ENTITY[row_idx]; } \ + inline auto& _##ENTITY() const { return pp.ENTITY[row_idx]; } +#define DEFINE_GETTERS(GETTER_MACRO, ENTITIES) \ + FOR_EACH(GETTER_MACRO, ENTITIES) +// clang-format on + namespace bb::avm2 { class AvmFlavor { @@ -131,32 +145,29 @@ class AvmFlavor { (NUM_WITNESS_ENTITIES + 1) * NUM_FRS_COM + (NUM_ALL_ENTITIES + 1) * NUM_FRS_FR + CONST_PROOF_SIZE_LOG_N * (NUM_FRS_COM + NUM_FRS_FR * (BATCHED_RELATION_PARTIAL_LENGTH + 1)); - template class PrecomputedEntities : public PrecomputedEntitiesBase { + template class PrecomputedEntities : public PrecomputedEntitiesBase { public: - using DataType = DataType_; - DEFINE_FLAVOR_MEMBERS(DataType, AVM2_PRECOMPUTED_ENTITIES) - - RefVector get_selectors() { return get_all(); } - RefVector get_sigma_polynomials() { return {}; } - RefVector get_id_polynomials() { return {}; } - RefVector get_table_polynomials() { return {}; } + DEFINE_GETTERS(DEFAULT_GETTERS, AVM2_PRECOMPUTED_ENTITIES) }; private: template class WireEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM2_WIRE_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM2_WIRE_ENTITIES) }; template class DerivedWitnessEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM2_DERIVED_WITNESS_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM2_DERIVED_WITNESS_ENTITIES) }; template class ShiftedEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, AVM2_SHIFTED_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM2_SHIFTED_ENTITIES) }; template @@ -262,12 +273,26 @@ class AvmFlavor { using Base::Base; }; + // Only used by VM1 check_circuit. Remove. class AllConstRefValues { public: using BaseDataType = const FF; using DataType = BaseDataType&; - DEFINE_FLAVOR_MEMBERS(DataType, AVM2_ALL_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, AVM2_ALL_ENTITIES) + }; + + template class PolynomialEntitiesAtFixedRow { + public: + PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials& pp) + : row_idx(row_idx) + , pp(pp) + {} + DEFINE_GETTERS(ROW_PROXY_GETTERS, AVM2_ALL_ENTITIES) + + private: + const size_t row_idx; + const Polynomials& pp; }; /** @@ -286,12 +311,14 @@ class AvmFlavor { ProverPolynomials(ProvingKey& proving_key); size_t get_polynomial_size() const { return execution_input.size(); } - AllConstRefValues get_row(size_t row_idx) const + // This is only used in VM1 check_circuit. Remove. + AllConstRefValues get_standard_row(size_t row_idx) const { return [row_idx](auto&... entities) -> AllConstRefValues { return { entities[row_idx]... }; }(AVM2_ALL_ENTITIES); } + auto get_row(size_t row_idx) const { return PolynomialEntitiesAtFixedRow(row_idx, *this); } }; class PartiallyEvaluatedMultivariates : public AllEntities { diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_bc_decomposition.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_bc_decomposition.hpp index 464e5610011..ac054cbfc18 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_bc_decomposition.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_bc_decomposition.hpp @@ -36,15 +36,15 @@ class lookup_bytecode_to_read_unary_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.bc_decomposition_sel == 1 || in.precomputed_sel_unary == 1); + return (in._bc_decomposition_sel() == 1 || in._precomputed_sel_unary() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.bc_decomposition_sel); - const auto is_table_entry = View(in.precomputed_sel_unary); + const auto is_operation = View(in._bc_decomposition_sel()); + const auto is_table_entry = View(in._precomputed_sel_unary()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -60,14 +60,14 @@ class lookup_bytecode_to_read_unary_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_bytecode_to_read_unary_inv, - in.lookup_bytecode_to_read_unary_counts, - in.bc_decomposition_sel, - in.precomputed_sel_unary, - in.bc_decomposition_bytes_to_read, - in.bc_decomposition_bytes_to_read_unary, - in.precomputed_clk, - in.precomputed_as_unary); + return std::forward_as_tuple(in._lookup_bytecode_to_read_unary_inv(), + in._lookup_bytecode_to_read_unary_counts(), + in._bc_decomposition_sel(), + in._precomputed_sel_unary(), + in._bc_decomposition_bytes_to_read(), + in._bc_decomposition_bytes_to_read_unary(), + in._precomputed_clk(), + in._precomputed_as_unary()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_execution.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_execution.hpp index b2cc2632abd..e5fbd387103 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_execution.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_execution.hpp @@ -38,15 +38,15 @@ class lookup_dummy_precomputed_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.execution_sel == 1 || in.precomputed_sel_bitwise == 1); + return (in._execution_sel() == 1 || in._precomputed_sel_bitwise() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.execution_sel); - const auto is_table_entry = View(in.precomputed_sel_bitwise); + const auto is_operation = View(in._execution_sel()); + const auto is_table_entry = View(in._precomputed_sel_bitwise()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -62,18 +62,18 @@ class lookup_dummy_precomputed_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_dummy_precomputed_inv, - in.lookup_dummy_precomputed_counts, - in.execution_sel, - in.precomputed_sel_bitwise, - in.execution_sel, - in.execution_clk, - in.execution_clk, - in.execution_clk, - in.precomputed_bitwise_op_id, - in.precomputed_bitwise_input_a, - in.precomputed_bitwise_input_b, - in.precomputed_bitwise_output); + return std::forward_as_tuple(in._lookup_dummy_precomputed_inv(), + in._lookup_dummy_precomputed_counts(), + in._execution_sel(), + in._precomputed_sel_bitwise(), + in._execution_sel(), + in._execution_clk(), + in._execution_clk(), + in._execution_clk(), + in._precomputed_bitwise_op_id(), + in._precomputed_bitwise_input_a(), + in._precomputed_bitwise_input_b(), + in._precomputed_bitwise_output()); } }; @@ -111,15 +111,15 @@ class lookup_dummy_dynamic_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.execution_sel == 1 || in.execution_sel == 1); + return (in._execution_sel() == 1 || in._execution_sel() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.execution_sel); - const auto is_table_entry = View(in.execution_sel); + const auto is_operation = View(in._execution_sel()); + const auto is_table_entry = View(in._execution_sel()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -135,18 +135,18 @@ class lookup_dummy_dynamic_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_dummy_dynamic_inv, - in.lookup_dummy_dynamic_counts, - in.execution_sel, - in.execution_sel, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4); + return std::forward_as_tuple(in._lookup_dummy_dynamic_inv(), + in._lookup_dummy_dynamic_counts(), + in._execution_sel(), + in._execution_sel(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_range_check.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_range_check.hpp index d3ca59ee7fe..4305e105dd9 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_range_check.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_range_check.hpp @@ -35,15 +35,15 @@ class lookup_rng_chk_pow_2_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel == 1 || in.precomputed_sel_range_8 == 1); + return (in._range_check_sel() == 1 || in._precomputed_sel_range_8() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel); - const auto is_table_entry = View(in.precomputed_sel_range_8); + const auto is_operation = View(in._range_check_sel()); + const auto is_table_entry = View(in._precomputed_sel_range_8()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -59,14 +59,14 @@ class lookup_rng_chk_pow_2_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_pow_2_inv, - in.lookup_rng_chk_pow_2_counts, - in.range_check_sel, - in.precomputed_sel_range_8, - in.range_check_dyn_rng_chk_bits, - in.range_check_dyn_rng_chk_pow_2, - in.precomputed_clk, - in.precomputed_power_of_2); + return std::forward_as_tuple(in._lookup_rng_chk_pow_2_inv(), + in._lookup_rng_chk_pow_2_counts(), + in._range_check_sel(), + in._precomputed_sel_range_8(), + in._range_check_dyn_rng_chk_bits(), + in._range_check_dyn_rng_chk_pow_2(), + in._precomputed_clk(), + in._precomputed_power_of_2()); } }; @@ -100,15 +100,15 @@ class lookup_rng_chk_diff_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -124,12 +124,12 @@ class lookup_rng_chk_diff_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_diff_inv, - in.lookup_rng_chk_diff_counts, - in.range_check_sel, - in.precomputed_sel_range_16, - in.range_check_dyn_diff, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_diff_inv(), + in._lookup_rng_chk_diff_counts(), + in._range_check_sel(), + in._precomputed_sel_range_16(), + in._range_check_dyn_diff(), + in._precomputed_clk()); } }; @@ -163,15 +163,15 @@ class lookup_rng_chk_is_r0_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r0_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r0_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r0_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r0_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -187,12 +187,12 @@ class lookup_rng_chk_is_r0_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r0_16_bit_inv, - in.lookup_rng_chk_is_r0_16_bit_counts, - in.range_check_sel_r0_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r0, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r0_16_bit_inv(), + in._lookup_rng_chk_is_r0_16_bit_counts(), + in._range_check_sel_r0_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r0(), + in._precomputed_clk()); } }; @@ -228,15 +228,15 @@ class lookup_rng_chk_is_r1_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r1_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r1_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r1_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r1_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -252,12 +252,12 @@ class lookup_rng_chk_is_r1_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r1_16_bit_inv, - in.lookup_rng_chk_is_r1_16_bit_counts, - in.range_check_sel_r1_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r1, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r1_16_bit_inv(), + in._lookup_rng_chk_is_r1_16_bit_counts(), + in._range_check_sel_r1_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r1(), + in._precomputed_clk()); } }; @@ -293,15 +293,15 @@ class lookup_rng_chk_is_r2_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r2_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r2_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r2_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r2_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -317,12 +317,12 @@ class lookup_rng_chk_is_r2_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r2_16_bit_inv, - in.lookup_rng_chk_is_r2_16_bit_counts, - in.range_check_sel_r2_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r2, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r2_16_bit_inv(), + in._lookup_rng_chk_is_r2_16_bit_counts(), + in._range_check_sel_r2_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r2(), + in._precomputed_clk()); } }; @@ -358,15 +358,15 @@ class lookup_rng_chk_is_r3_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r3_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r3_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r3_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r3_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -382,12 +382,12 @@ class lookup_rng_chk_is_r3_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r3_16_bit_inv, - in.lookup_rng_chk_is_r3_16_bit_counts, - in.range_check_sel_r3_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r3, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r3_16_bit_inv(), + in._lookup_rng_chk_is_r3_16_bit_counts(), + in._range_check_sel_r3_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r3(), + in._precomputed_clk()); } }; @@ -423,15 +423,15 @@ class lookup_rng_chk_is_r4_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r4_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r4_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r4_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r4_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -447,12 +447,12 @@ class lookup_rng_chk_is_r4_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r4_16_bit_inv, - in.lookup_rng_chk_is_r4_16_bit_counts, - in.range_check_sel_r4_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r4, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r4_16_bit_inv(), + in._lookup_rng_chk_is_r4_16_bit_counts(), + in._range_check_sel_r4_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r4(), + in._precomputed_clk()); } }; @@ -488,15 +488,15 @@ class lookup_rng_chk_is_r5_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r5_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r5_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r5_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r5_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -512,12 +512,12 @@ class lookup_rng_chk_is_r5_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r5_16_bit_inv, - in.lookup_rng_chk_is_r5_16_bit_counts, - in.range_check_sel_r5_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r5, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r5_16_bit_inv(), + in._lookup_rng_chk_is_r5_16_bit_counts(), + in._range_check_sel_r5_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r5(), + in._precomputed_clk()); } }; @@ -553,15 +553,15 @@ class lookup_rng_chk_is_r6_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel_r6_16_bit_rng_lookup == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel_r6_16_bit_rng_lookup() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel_r6_16_bit_rng_lookup); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel_r6_16_bit_rng_lookup()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -577,12 +577,12 @@ class lookup_rng_chk_is_r6_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r6_16_bit_inv, - in.lookup_rng_chk_is_r6_16_bit_counts, - in.range_check_sel_r6_16_bit_rng_lookup, - in.precomputed_sel_range_16, - in.range_check_u16_r6, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r6_16_bit_inv(), + in._lookup_rng_chk_is_r6_16_bit_counts(), + in._range_check_sel_r6_16_bit_rng_lookup(), + in._precomputed_sel_range_16(), + in._range_check_u16_r6(), + in._precomputed_clk()); } }; @@ -618,15 +618,15 @@ class lookup_rng_chk_is_r7_16_bit_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.range_check_sel == 1 || in.precomputed_sel_range_16 == 1); + return (in._range_check_sel() == 1 || in._precomputed_sel_range_16() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.range_check_sel); - const auto is_table_entry = View(in.precomputed_sel_range_16); + const auto is_operation = View(in._range_check_sel()); + const auto is_table_entry = View(in._precomputed_sel_range_16()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -642,12 +642,12 @@ class lookup_rng_chk_is_r7_16_bit_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_rng_chk_is_r7_16_bit_inv, - in.lookup_rng_chk_is_r7_16_bit_counts, - in.range_check_sel, - in.precomputed_sel_range_16, - in.range_check_u16_r7, - in.precomputed_clk); + return std::forward_as_tuple(in._lookup_rng_chk_is_r7_16_bit_inv(), + in._lookup_rng_chk_is_r7_16_bit_counts(), + in._range_check_sel(), + in._precomputed_sel_range_16(), + in._range_check_u16_r7(), + in._precomputed_clk()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_sha256.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_sha256.hpp index 3a726ca78c1..086379e84bc 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_sha256.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_sha256.hpp @@ -36,15 +36,15 @@ class lookup_sha256_round_constant_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.sha256_sel == 1 || in.precomputed_sel_sha256_compression == 1); + return (in._sha256_sel() == 1 || in._precomputed_sel_sha256_compression() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.sha256_sel); - const auto is_table_entry = View(in.precomputed_sel_sha256_compression); + const auto is_operation = View(in._sha256_sel()); + const auto is_table_entry = View(in._precomputed_sel_sha256_compression()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -60,14 +60,14 @@ class lookup_sha256_round_constant_lookup_settings { template static inline auto get_entities(AllEntities&& in) { - return std::forward_as_tuple(in.lookup_sha256_round_constant_inv, - in.lookup_sha256_round_constant_counts, - in.sha256_sel, - in.precomputed_sel_sha256_compression, - in.sha256_round_count, - in.sha256_round_constant, - in.precomputed_clk, - in.precomputed_sha256_compression_round_constant); + return std::forward_as_tuple(in._lookup_sha256_round_constant_inv(), + in._lookup_sha256_round_constant_counts(), + in._sha256_sel(), + in._precomputed_sel_sha256_compression(), + in._sha256_round_count(), + in._sha256_round_constant(), + in._precomputed_clk(), + in._precomputed_sha256_compression_round_constant()); } }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/perms_execution.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/perms_execution.hpp index 64706541518..aa7dce25a5f 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/perms_execution.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/perms_execution.hpp @@ -24,39 +24,39 @@ class perm_dummy_dynamic_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.execution_sel == 1 || in.execution_sel == 1); + return (in._execution_sel() == 1 || in._execution_sel() == 1); } template static inline auto get_const_entities(const AllEntities& in) { - return std::forward_as_tuple(in.perm_dummy_dynamic_inv, - in.execution_sel, - in.execution_sel, - in.execution_sel, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4); + return std::forward_as_tuple(in._perm_dummy_dynamic_inv(), + in._execution_sel(), + in._execution_sel(), + in._execution_sel(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4()); } template static inline auto get_nonconst_entities(AllEntities& in) { - return std::forward_as_tuple(in.perm_dummy_dynamic_inv, - in.execution_sel, - in.execution_sel, - in.execution_sel, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4, - in.execution_op1, - in.execution_op2, - in.execution_op3, - in.execution_op4); + return std::forward_as_tuple(in._perm_dummy_dynamic_inv(), + in._execution_sel(), + in._execution_sel(), + in._execution_sel(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4(), + in._execution_op1(), + in._execution_op2(), + in._execution_op3(), + in._execution_op4()); } }; 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 9820c3dfd7e..1c4126f8af4 100644 --- a/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/circuit_builder.cpp.hbs @@ -142,7 +142,7 @@ bool AvmCircuitBuilder::check_circuit() const { std::array subrelation_failed = { false }; for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(result, polys.get_row(r), {}, 1); + Relation::accumulate(result, polys.get_standard_row(r), {}, 1); for (size_t j = 0; j < result.size(); ++j) { if (!subrelation_failed[j] && result[j] != 0) { signal_error(format("Relation ", @@ -173,7 +173,7 @@ bool AvmCircuitBuilder::check_circuit() const { r = 0; } for (size_t r = 0; r < num_rows; ++r) { - Relation::accumulate(lookup_result, polys.get_row(r), params, 1); + Relation::accumulate(lookup_result, polys.get_standard_row(r), params, 1); } for (auto r : lookup_result) { if (r != 0) { diff --git a/bb-pilcom/bb-pil-backend/templates/columns.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/columns.hpp.hbs index 876335f3e7e..760473cd7e2 100644 --- a/bb-pilcom/bb-pil-backend/templates/columns.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/columns.hpp.hbs @@ -16,6 +16,7 @@ namespace bb::{{snakeCase name}} { #define {{shoutySnakeCase name}}_TO_BE_SHIFTED(e) {{#each to_be_shifted as |item|}}{{#if @index}}, {{/if}}e.{{item}}{{/each}} #define {{shoutySnakeCase name}}_ALL_ENTITIES {{#if (len fixed)}}{{shoutySnakeCase name}}_PRECOMPUTED_ENTITIES{{/if}}{{#if (len witness_without_inverses)}}, {{shoutySnakeCase name}}_WIRE_ENTITIES{{/if}}{{#if (len lookups)}}, {{shoutySnakeCase name}}_DERIVED_WITNESS_ENTITIES{{/if}}{{#if (len shifted)}}, {{shoutySnakeCase name}}_SHIFTED_ENTITIES{{/if}} #define {{shoutySnakeCase name}}_UNSHIFTED_ENTITIES {{shoutySnakeCase name}}_PRECOMPUTED_ENTITIES, {{shoutySnakeCase name}}_WIRE_ENTITIES, {{shoutySnakeCase name}}_DERIVED_WITNESS_ENTITIES +#define {{shoutySnakeCase name}}_WITNESS_ENTITIES {{shoutySnakeCase name}}_WIRE_ENTITIES, {{shoutySnakeCase name}}_DERIVED_WITNESS_ENTITIES #define {{shoutySnakeCase name}}_TO_BE_SHIFTED_COLUMNS {{#each to_be_shifted as |item|}}{{#if @index}}, {{/if}}Column::{{item}}{{/each}} #define {{shoutySnakeCase name}}_SHIFTED_COLUMNS {{#each shifted as |item|}}{{#if @index}}, {{/if}}ColumnAndShifts::{{item}}{{/each}} diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs index e4eae24e875..cd6287ae75a 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.hpp.hbs @@ -15,6 +15,7 @@ #include "flavor_settings.hpp" #include "columns.hpp" #include "barretenberg/vm/aztec_constants.hpp" +#include "barretenberg/vm2/common/macros.hpp" // Relations {{#each relation_file_names as |r|}} @@ -29,6 +30,19 @@ // Metaprogramming to concatenate tuple types. template using tuple_cat_t = decltype(std::tuple_cat(std::declval()...)); +// clang-format off +// These getters are used to speedup logderivative inverses. +// See https://github.com/AztecProtocol/aztec-packages/pull/11605/ for a full explanation. +#define DEFAULT_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return ENTITY; } \ + inline auto& _##ENTITY() const { return ENTITY; } +#define ROW_PROXY_GETTERS(ENTITY) \ + inline auto& _##ENTITY() { return pp.ENTITY[row_idx]; } \ + inline auto& _##ENTITY() const { return pp.ENTITY[row_idx]; } +#define DEFINE_GETTERS(GETTER_MACRO, ENTITIES) \ + FOR_EACH(GETTER_MACRO, ENTITIES) +// clang-format on + namespace bb::{{snakeCase name}} { class AvmFlavor { @@ -123,16 +137,10 @@ class AvmFlavor { "in constants.nr accordingly."); {{/if}} - template class PrecomputedEntities : public PrecomputedEntitiesBase { + template class PrecomputedEntities : public PrecomputedEntitiesBase { public: - using DataType = DataType_; - DEFINE_FLAVOR_MEMBERS(DataType, {{shoutySnakeCase name}}_PRECOMPUTED_ENTITIES) - - RefVector get_selectors() { return get_all(); } - RefVector get_sigma_polynomials() { return {}; } - RefVector get_id_polynomials() { return {}; } - RefVector get_table_polynomials() { return {}; } + DEFINE_GETTERS(DEFAULT_GETTERS, {{shoutySnakeCase name}}_PRECOMPUTED_ENTITIES) }; private: @@ -140,18 +148,21 @@ class AvmFlavor { class WireEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, {{shoutySnakeCase name}}_WIRE_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, {{shoutySnakeCase name}}_WIRE_ENTITIES) }; template class DerivedWitnessEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, {{shoutySnakeCase name}}_DERIVED_WITNESS_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, {{shoutySnakeCase name}}_DERIVED_WITNESS_ENTITIES) }; template class ShiftedEntities { public: DEFINE_FLAVOR_MEMBERS(DataType, {{shoutySnakeCase name}}_SHIFTED_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, {{shoutySnakeCase name}}_SHIFTED_ENTITIES) }; template @@ -257,18 +268,24 @@ class AvmFlavor { using Base::Base; }; - {{!-- Used by get_row, logderivs, etc --}} + // Only used by VM1 check_circuit. Remove. class AllConstRefValues { public: using BaseDataType = const FF; using DataType = BaseDataType&; - - {{!-- - We define the flavor members here again to avoid having to make this class inherit from AllEntities. - If we did inherit from AllEntities, we have to define a special constructor for AllEntities, and all - the classes that AllEntities inherits from, in cascade. - --}} DEFINE_FLAVOR_MEMBERS(DataType, {{shoutySnakeCase name}}_ALL_ENTITIES) + DEFINE_GETTERS(DEFAULT_GETTERS, {{shoutySnakeCase name}}_ALL_ENTITIES) + }; + + template + class PolynomialEntitiesAtFixedRow { + public: + PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials& pp) : row_idx(row_idx), pp(pp) {} + DEFINE_GETTERS(ROW_PROXY_GETTERS, {{shoutySnakeCase name}}_ALL_ENTITIES) + + private: + const size_t row_idx; + const Polynomials& pp; }; /** @@ -287,9 +304,13 @@ class AvmFlavor { ProverPolynomials(ProvingKey& proving_key); size_t get_polynomial_size() const { return {{witness.0}}.size(); } - AllConstRefValues get_row(size_t row_idx) const { + // This is only used in VM1 check_circuit. Remove. + AllConstRefValues get_standard_row(size_t row_idx) const { return [row_idx](auto&... entities) -> AllConstRefValues { return { entities[row_idx]... }; }({{shoutySnakeCase name}}_ALL_ENTITIES); } + auto get_row(size_t row_idx) const { + return PolynomialEntitiesAtFixedRow(row_idx, *this); + } }; class PartiallyEvaluatedMultivariates : public AllEntities { diff --git a/bb-pilcom/bb-pil-backend/templates/lookup.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/lookup.hpp.hbs index 1797a518a75..baf256319b4 100644 --- a/bb-pilcom/bb-pil-backend/templates/lookup.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/lookup.hpp.hbs @@ -42,15 +42,15 @@ class {{lookup_name}}_lookup_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.{{lhs_selector}} == 1 || in.{{rhs_selector}} == 1); + return (in._{{lhs_selector}}() == 1 || in._{{rhs_selector}}() == 1); } template static inline auto compute_inverse_exists(const AllEntities& in) { using View = typename Accumulator::View; - const auto is_operation = View(in.{{lhs_selector}}); - const auto is_table_entry = View(in.{{rhs_selector}}); + const auto is_operation = View(in._{{lhs_selector}}()); + const auto is_table_entry = View(in._{{rhs_selector}}()); return (is_operation + is_table_entry - is_operation * is_table_entry); } @@ -67,15 +67,15 @@ class {{lookup_name}}_lookup_settings { template static inline auto get_entities(AllEntities&& in) { return std::forward_as_tuple( - in.{{inverses_col}}, - in.{{counts_col}}, - in.{{lhs_selector}}, - in.{{rhs_selector}}, + in._{{inverses_col}}(), + in._{{counts_col}}(), + in._{{lhs_selector}}(), + in._{{rhs_selector}}(), {{#each lhs_cols as |col|}} - in.{{col}}, + in._{{col}}(), {{/each}} {{#each rhs_cols as |col|}} - in.{{col}}{{#unless @last}},{{/unless}} + in._{{col}}(){{#unless @last}},{{/unless}} {{/each}} ); } diff --git a/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs index 2dbd857924b..60eea269bc2 100644 --- a/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs @@ -25,14 +25,14 @@ class {{perm_name}}_permutation_settings { template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { - return (in.{{lhs_selector}} == 1 || in.{{rhs_selector}} == 1); + return (in._{{lhs_selector}}() == 1 || in._{{rhs_selector}}() == 1); } template static inline auto get_const_entities(const AllEntities& in) { return std::forward_as_tuple( {{#each perm_entities as |ent|}} - in.{{ent}}{{#unless @last}},{{/unless}} + in._{{ent}}(){{#unless @last}},{{/unless}} {{/each}} ); } @@ -41,7 +41,7 @@ class {{perm_name}}_permutation_settings { { return std::forward_as_tuple( {{#each perm_entities as |ent|}} - in.{{ent}}{{#unless @last}},{{/unless}} + in._{{ent}}(){{#unless @last}},{{/unless}} {{/each}} ); }