Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
perms_addressing.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
4#include <cstddef>
5#include <string_view>
6#include <tuple>
7
8#include "../columns.hpp"
11
12namespace bb::avm2 {
13
15
17 static constexpr std::string_view NAME = "PERM_ADDRESSING_BASE_ADDRESS_FROM_MEMORY";
18 static constexpr std::string_view RELATION_NAME = "addressing";
19 static constexpr size_t COLUMNS_PER_SET = 6;
20 static constexpr Column SRC_SELECTOR = Column::execution_sel_do_base_check;
21 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_base;
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
30 };
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
34 };
35};
36
39template <typename FF_>
42
44
46 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_0";
47 static constexpr std::string_view RELATION_NAME = "addressing";
48 static constexpr size_t COLUMNS_PER_SET = 6;
49 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_0_;
50 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
59 };
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
63 };
64};
65
68template <typename FF_>
71
73
75 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_1";
76 static constexpr std::string_view RELATION_NAME = "addressing";
77 static constexpr size_t COLUMNS_PER_SET = 6;
78 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_1_;
79 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
88 };
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
92 };
93};
94
97template <typename FF_>
100
102
104 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_2";
105 static constexpr std::string_view RELATION_NAME = "addressing";
106 static constexpr size_t COLUMNS_PER_SET = 6;
107 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_2_;
108 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
117 };
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
121 };
122};
123
126template <typename FF_>
129
131
133 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_3";
134 static constexpr std::string_view RELATION_NAME = "addressing";
135 static constexpr size_t COLUMNS_PER_SET = 6;
136 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_3_;
137 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
146 };
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
150 };
151};
152
155template <typename FF_>
158
160
162 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_4";
163 static constexpr std::string_view RELATION_NAME = "addressing";
164 static constexpr size_t COLUMNS_PER_SET = 6;
165 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_4_;
166 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
175 };
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
179 };
180};
181
184template <typename FF_>
187
189
191 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_5";
192 static constexpr std::string_view RELATION_NAME = "addressing";
193 static constexpr size_t COLUMNS_PER_SET = 6;
194 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_5_;
195 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
204 };
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
208 };
209};
210
213template <typename FF_>
216
218
220 static constexpr std::string_view NAME = "PERM_ADDRESSING_INDIRECT_FROM_MEMORY_6";
221 static constexpr std::string_view RELATION_NAME = "addressing";
222 static constexpr size_t COLUMNS_PER_SET = 6;
223 static constexpr Column SRC_SELECTOR = Column::execution_sel_should_apply_indirection_6_;
224 static constexpr Column DST_SELECTOR = Column::memory_sel_addressing_indirect_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
233 };
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
237 };
238};
239
242template <typename FF_>
245
246} // namespace bb::avm2
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::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS