|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <multi_permutation_builder.hpp>
Public Member Functions | |
| MultiPermutationBuilder (Column dst_table_selector) | |
| ~MultiPermutationBuilder () override=default | |
| void | process (TraceContainer &trace) override |
| template<typename PermutationSettings > | |
| void | set_destination_selector (TraceContainer &trace) |
| void | init (TraceContainer &trace) |
Public Member Functions inherited from bb::avm2::tracegen::InteractionBuilderInterface | |
| virtual | ~InteractionBuilderInterface ()=default |
| virtual size_t | get_destination_columns_fingerprint () const |
Private Types | |
| using | REPRESENTATIVE_PERM = std::tuple_element_t< 0, flat_tuple::tuple< PermutationSettings_... > > |
Private Attributes | |
| Column | dst_table_selector |
| unordered_flat_map< std::array< FF, COLUMNS_PER_SET >, std::vector< uint32_t > > | row_idx |
Static Private Attributes | |
| static constexpr auto | DST_COLUMNS = REPRESENTATIVE_PERM::DST_COLUMNS |
| static constexpr size_t | COLUMNS_PER_SET = DST_COLUMNS.size() |
Suppose you have n permutations (P1, ..., Pn) such that
You want to find, for each source row of each permutation, a row in the destination table and set the right destination selector. For the next source row or permutation, you should not be able to consider the "already used" destination rows, because this is a permutation.
Definition at line 34 of file multi_permutation_builder.hpp.
|
private |
Definition at line 90 of file multi_permutation_builder.hpp.
|
inline |
Definition at line 36 of file multi_permutation_builder.hpp.
|
overridedefault |
|
inline |
Definition at line 77 of file multi_permutation_builder.hpp.
|
inlineoverridevirtual |
Implements bb::avm2::tracegen::InteractionBuilderInterface.
Definition at line 41 of file multi_permutation_builder.hpp.
|
inline |
Definition at line 53 of file multi_permutation_builder.hpp.
|
staticconstexprprivate |
Definition at line 92 of file multi_permutation_builder.hpp.
|
staticconstexprprivate |
Definition at line 91 of file multi_permutation_builder.hpp.
|
private |
Definition at line 96 of file multi_permutation_builder.hpp.
|
private |
Definition at line 103 of file multi_permutation_builder.hpp.