8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_BASE_ADDRESS_FROM_MEMORY";
22 static constexpr Column INVERSES = Column::perm_addressing_base_address_from_memory_inv;
23 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
24 ColumnAndShifts::precomputed_clk,
25 ColumnAndShifts::execution_context_id,
26 ColumnAndShifts::precomputed_zero,
27 ColumnAndShifts::execution_base_address_val,
28 ColumnAndShifts::execution_base_address_tag,
29 ColumnAndShifts::precomputed_zero
31 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
32 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
33 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
39template <
typename FF_>
46 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_0";
51 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_0_inv;
52 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
53 ColumnAndShifts::precomputed_clk,
54 ColumnAndShifts::execution_context_id,
55 ColumnAndShifts::execution_op_after_relative_0_,
56 ColumnAndShifts::execution_rop_0_,
57 ColumnAndShifts::execution_rop_tag_0_,
58 ColumnAndShifts::precomputed_zero
60 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
61 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
62 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
68template <
typename FF_>
75 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_1";
80 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_1_inv;
81 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
82 ColumnAndShifts::precomputed_clk,
83 ColumnAndShifts::execution_context_id,
84 ColumnAndShifts::execution_op_after_relative_1_,
85 ColumnAndShifts::execution_rop_1_,
86 ColumnAndShifts::execution_rop_tag_1_,
87 ColumnAndShifts::precomputed_zero
89 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
90 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
91 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
97template <
typename FF_>
104 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_2";
109 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_2_inv;
110 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
111 ColumnAndShifts::precomputed_clk,
112 ColumnAndShifts::execution_context_id,
113 ColumnAndShifts::execution_op_after_relative_2_,
114 ColumnAndShifts::execution_rop_2_,
115 ColumnAndShifts::execution_rop_tag_2_,
116 ColumnAndShifts::precomputed_zero
118 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
119 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
120 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
126template <
typename FF_>
133 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_3";
138 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_3_inv;
139 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
140 ColumnAndShifts::precomputed_clk,
141 ColumnAndShifts::execution_context_id,
142 ColumnAndShifts::execution_op_after_relative_3_,
143 ColumnAndShifts::execution_rop_3_,
144 ColumnAndShifts::execution_rop_tag_3_,
145 ColumnAndShifts::precomputed_zero
147 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
148 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
149 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
155template <
typename FF_>
162 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_4";
167 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_4_inv;
168 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
169 ColumnAndShifts::precomputed_clk,
170 ColumnAndShifts::execution_context_id,
171 ColumnAndShifts::execution_op_after_relative_4_,
172 ColumnAndShifts::execution_rop_4_,
173 ColumnAndShifts::execution_rop_tag_4_,
174 ColumnAndShifts::precomputed_zero
176 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
177 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
178 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
184template <
typename FF_>
191 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_5";
196 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_5_inv;
197 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
198 ColumnAndShifts::precomputed_clk,
199 ColumnAndShifts::execution_context_id,
200 ColumnAndShifts::execution_op_after_relative_5_,
201 ColumnAndShifts::execution_rop_5_,
202 ColumnAndShifts::execution_rop_tag_5_,
203 ColumnAndShifts::precomputed_zero
205 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
206 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
207 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
213template <
typename FF_>
220 static constexpr std::string_view
NAME =
"PERM_ADDRESSING_INDIRECT_FROM_MEMORY_6";
225 static constexpr Column INVERSES = Column::perm_addressing_indirect_from_memory_6_inv;
226 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
227 ColumnAndShifts::precomputed_clk,
228 ColumnAndShifts::execution_context_id,
229 ColumnAndShifts::execution_op_after_relative_6_,
230 ColumnAndShifts::execution_rop_6_,
231 ColumnAndShifts::execution_rop_tag_6_,
232 ColumnAndShifts::precomputed_zero
234 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
235 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
236 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
242template <
typename FF_>
This file contains the template for the generic permutation that can be specialized to enforce variou...
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr size_t COLUMNS_PER_SET
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr size_t COLUMNS_PER_SET
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr size_t COLUMNS_PER_SET
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t COLUMNS_PER_SET
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr size_t COLUMNS_PER_SET
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr size_t COLUMNS_PER_SET