diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_cmp_alu.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_cmp_alu.hpp index 1c45010f699..2830de59c49 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_cmp_alu.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_cmp_alu.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_cmp_alu_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 7; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::cmp_sel_cmp; + static constexpr Column DST_SELECTOR = Column::alu_cmp_gadget_sel; + static constexpr Column INVERSES = Column::perm_cmp_alu_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_alu.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_alu.hpp index 98b4b50c102..363330c0e32 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_alu.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_alu.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_alu_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 16; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_alu; + static constexpr Column DST_SELECTOR = Column::alu_sel_alu; + static constexpr Column INVERSES = Column::perm_main_alu_inv; + template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { return (in.main_sel_alu == 1 || in.alu_sel_alu == 1); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_bin.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_bin.hpp index d6aa985dead..7f55dabfe6b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_bin.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_bin.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_bin_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 6; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_bin; + static constexpr Column DST_SELECTOR = Column::binary_start; + static constexpr Column INVERSES = Column::perm_main_bin_inv; + template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { return (in.main_sel_bin == 1 || in.binary_start == 1); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_conv.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_conv.hpp index 73f75460e0d..52b955b09fd 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_conv.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_conv.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_conv_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_op_radix_be; + static constexpr Column DST_SELECTOR = Column::conversion_sel_to_radix_be; + static constexpr Column INVERSES = Column::perm_main_conv_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_a.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_a.hpp index 5b67cd4c5c4..00dcc32980f 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_a.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_a.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_a_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 8; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_mem_op_a; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_a; + static constexpr Column INVERSES = Column::perm_main_mem_a_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_b.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_b.hpp index ec4db06c578..5281245386f 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_b.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_b.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_b_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 8; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_mem_op_b; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_b; + static constexpr Column INVERSES = Column::perm_main_mem_b_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_c.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_c.hpp index acbc0b7e40a..9d9512688fd 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_c.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_c.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_c_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 7; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_mem_op_c; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_c; + static constexpr Column INVERSES = Column::perm_main_mem_c_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_d.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_d.hpp index d54bc468d8e..4c787ee0960 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_d.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_d.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_d_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 7; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_mem_op_d; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_d; + static constexpr Column INVERSES = Column::perm_main_mem_d_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_a.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_a.hpp index 91aed07085b..9f0a19fbf4b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_a.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_a.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_ind_addr_a_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_resolve_ind_addr_a; + static constexpr Column DST_SELECTOR = Column::mem_sel_resolve_ind_addr_a; + static constexpr Column INVERSES = Column::perm_main_mem_ind_addr_a_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_b.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_b.hpp index e4e0f5c647f..366498465e2 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_b.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_b.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_ind_addr_b_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_resolve_ind_addr_b; + static constexpr Column DST_SELECTOR = Column::mem_sel_resolve_ind_addr_b; + static constexpr Column INVERSES = Column::perm_main_mem_ind_addr_b_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_c.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_c.hpp index 23b8cc3ed80..4b318b84b59 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_c.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_c.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_ind_addr_c_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_resolve_ind_addr_c; + static constexpr Column DST_SELECTOR = Column::mem_sel_resolve_ind_addr_c; + static constexpr Column INVERSES = Column::perm_main_mem_ind_addr_c_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_d.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_d.hpp index 9cd180cddbf..824a6616b3d 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_d.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_mem_ind_addr_d.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_mem_ind_addr_d_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_resolve_ind_addr_d; + static constexpr Column DST_SELECTOR = Column::mem_sel_resolve_ind_addr_d; + static constexpr Column INVERSES = Column::perm_main_mem_ind_addr_d_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_pos2_perm.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_pos2_perm.hpp index 4bb38fb0104..f96735310ff 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_pos2_perm.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_pos2_perm.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_pos2_perm_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_op_poseidon2; + static constexpr Column DST_SELECTOR = Column::poseidon2_sel_poseidon_perm; + static constexpr Column INVERSES = Column::perm_main_pos2_perm_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_sha256.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_sha256.hpp index 5840520b2e2..0e5068bd5ac 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_sha256.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_main_sha256.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_main_sha256_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::main_sel_op_sha256; + static constexpr Column DST_SELECTOR = Column::sha256_sel_sha256_compression; + static constexpr Column INVERSES = Column::perm_main_sha256_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_merkle_poseidon2.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_merkle_poseidon2.hpp index b834a9d8b47..7932af800ff 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_merkle_poseidon2.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_merkle_poseidon2.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_merkle_poseidon2_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 4; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::merkle_tree_sel_merkle_tree; + static constexpr Column DST_SELECTOR = Column::poseidon2_full_sel_merkle_tree; + static constexpr Column INVERSES = Column::perm_merkle_poseidon2_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos2_fixed_pos2_perm.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos2_fixed_pos2_perm.hpp index 09652cc48a9..8e65cd79075 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos2_fixed_pos2_perm.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos2_fixed_pos2_perm.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos2_fixed_pos2_perm_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 9; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_full_sel_poseidon; + static constexpr Column DST_SELECTOR = Column::poseidon2_sel_poseidon_perm_immediate; + static constexpr Column INVERSES = Column::perm_pos2_fixed_pos2_perm_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_a.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_a.hpp index fd33b39f2a5..c9d6d37a8a4 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_a.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_a.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_read_a_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_read_a; + static constexpr Column INVERSES = Column::perm_pos_mem_read_a_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_b.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_b.hpp index 660cd83d22a..0c061507991 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_b.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_b.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_read_b_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_read_b; + static constexpr Column INVERSES = Column::perm_pos_mem_read_b_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_c.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_c.hpp index a3322399a69..3dbf72feb8b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_c.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_c.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_read_c_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_read_c; + static constexpr Column INVERSES = Column::perm_pos_mem_read_c_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_d.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_d.hpp index 8ef21a4a9c9..f1131b0ef64 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_d.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_read_d.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_read_d_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_read_d; + static constexpr Column INVERSES = Column::perm_pos_mem_read_d_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_a.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_a.hpp index ca574d1b1fb..84a3748dea6 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_a.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_a.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_write_a_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_write_a; + static constexpr Column INVERSES = Column::perm_pos_mem_write_a_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_b.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_b.hpp index 7abc1c33962..d665cb6220b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_b.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_b.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_write_b_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_write_b; + static constexpr Column INVERSES = Column::perm_pos_mem_write_b_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_c.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_c.hpp index 213deb7728e..730946d69f1 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_c.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_c.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_write_c_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_write_c; + static constexpr Column INVERSES = Column::perm_pos_mem_write_c_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_d.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_d.hpp index d45486385bc..570581548dd 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_d.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_pos_mem_write_d.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_pos_mem_write_d_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::poseidon2_sel_poseidon_perm_mem_op; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_poseidon_write_d; + static constexpr Column INVERSES = Column::perm_pos_mem_write_d_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_alu.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_alu.hpp index 5c935533df9..508be9f2804 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_alu.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_alu.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_rng_alu_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 3; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::range_check_alu_rng_chk; + static constexpr Column DST_SELECTOR = Column::alu_range_check_sel; + static constexpr Column INVERSES = Column::perm_rng_alu_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_hi.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_hi.hpp index 01eddfee864..f60dd58f6e7 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_hi.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_hi.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_rng_cmp_hi_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 2; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::range_check_cmp_hi_bits_rng_chk; + static constexpr Column DST_SELECTOR = Column::cmp_sel_rng_chk; + static constexpr Column INVERSES = Column::perm_rng_cmp_hi_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_lo.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_lo.hpp index 4315efb8b4b..fe8426fc536 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_lo.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_cmp_lo.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_rng_cmp_lo_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 2; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::range_check_cmp_lo_bits_rng_chk; + static constexpr Column DST_SELECTOR = Column::cmp_sel_rng_chk; + static constexpr Column INVERSES = Column::perm_rng_cmp_lo_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_non_ff_cmp.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_non_ff_cmp.hpp index 6170cae1b33..b07bb1e4b5b 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_non_ff_cmp.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_rng_non_ff_cmp.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_rng_non_ff_cmp_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 2; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::range_check_cmp_non_ff_rng_chk; + static constexpr Column DST_SELECTOR = Column::cmp_op_non_ff_gt; + static constexpr Column INVERSES = Column::perm_rng_non_ff_cmp_inv; + 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); diff --git a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_slice_mem.hpp b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_slice_mem.hpp index 182b931fdfe..1ee3faa5c49 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_slice_mem.hpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm/generated/relations/perm_slice_mem.hpp @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class perm_slice_mem_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = 5; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::slice_sel_mem_active; + static constexpr Column DST_SELECTOR = Column::mem_sel_op_slice; + static constexpr Column INVERSES = Column::perm_slice_mem_inv; + 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); diff --git a/bb-pilcom/bb-pil-backend/src/permutation_builder.rs b/bb-pilcom/bb-pil-backend/src/permutation_builder.rs index 3c7a978472c..b7cdaa735d0 100644 --- a/bb-pilcom/bb-pil-backend/src/permutation_builder.rs +++ b/bb-pilcom/bb-pil-backend/src/permutation_builder.rs @@ -144,6 +144,7 @@ fn create_permutation_settings_data(permutation: &Permutation, vm_name: &str) -> "lhs_selector": lhs_selector, "rhs_selector": rhs_selector, "perm_entities": perm_entities, + "inverses_col": permutation.inverse.clone(), }) } diff --git a/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs b/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs index 29ee9a18e0c..502bbb886a4 100644 --- a/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/permutation.hpp.hbs @@ -1,6 +1,7 @@ // AUTOGENERATED FILE #pragma once +#include "../columns.hpp" #include "barretenberg/relations/generic_permutation/generic_permutation_relation.hpp" #include @@ -13,6 +14,11 @@ class {{perm_name}}_permutation_settings { // This constant defines how many columns are bundled together to form each set. constexpr static size_t COLUMNS_PER_SET = {{columns_per_set}}; + // Columns using the Column enum. + static constexpr Column SRC_SELECTOR = Column::{{lhs_selector}}; + static constexpr Column DST_SELECTOR = Column::{{rhs_selector}}; + static constexpr Column INVERSES = Column::{{inverses_col}}; + template static inline auto inverse_polynomial_is_computed_at_row(const AllEntities& in) { return (in.{{lhs_selector}} == 1 || in.{{rhs_selector}} == 1);