Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
perms_poseidon2_mem.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_POSEIDON2_MEM_POS_READ_MEM_0";
18 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
19 static constexpr size_t COLUMNS_PER_SET = 6;
20 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_read_mem;
21 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_read_0_;
22 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_read_mem_0_inv;
23 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
24 ColumnAndShifts::poseidon2_perm_mem_execution_clk, ColumnAndShifts::poseidon2_perm_mem_space_id,
25 ColumnAndShifts::poseidon2_perm_mem_read_address_0_, ColumnAndShifts::poseidon2_perm_mem_input_0_,
26 ColumnAndShifts::poseidon2_perm_mem_input_tag_0_, ColumnAndShifts::precomputed_zero
27 };
28 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
29 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
30 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
31 };
32};
33
35template <typename FF_>
38
40
42 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_READ_MEM_1";
43 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
44 static constexpr size_t COLUMNS_PER_SET = 6;
45 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_read_mem;
46 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_read_1_;
47 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_read_mem_1_inv;
48 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
49 ColumnAndShifts::poseidon2_perm_mem_execution_clk, ColumnAndShifts::poseidon2_perm_mem_space_id,
50 ColumnAndShifts::poseidon2_perm_mem_read_address_1_, ColumnAndShifts::poseidon2_perm_mem_input_1_,
51 ColumnAndShifts::poseidon2_perm_mem_input_tag_1_, ColumnAndShifts::precomputed_zero
52 };
53 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
54 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
55 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
56 };
57};
58
60template <typename FF_>
63
65
67 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_READ_MEM_2";
68 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
69 static constexpr size_t COLUMNS_PER_SET = 6;
70 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_read_mem;
71 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_read_2_;
72 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_read_mem_2_inv;
73 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
74 ColumnAndShifts::poseidon2_perm_mem_execution_clk, ColumnAndShifts::poseidon2_perm_mem_space_id,
75 ColumnAndShifts::poseidon2_perm_mem_read_address_2_, ColumnAndShifts::poseidon2_perm_mem_input_2_,
76 ColumnAndShifts::poseidon2_perm_mem_input_tag_2_, ColumnAndShifts::precomputed_zero
77 };
78 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
79 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
80 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
81 };
82};
83
85template <typename FF_>
88
90
92 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_READ_MEM_3";
93 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
94 static constexpr size_t COLUMNS_PER_SET = 6;
95 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_read_mem;
96 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_read_3_;
97 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_read_mem_3_inv;
98 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
99 ColumnAndShifts::poseidon2_perm_mem_execution_clk, ColumnAndShifts::poseidon2_perm_mem_space_id,
100 ColumnAndShifts::poseidon2_perm_mem_read_address_3_, ColumnAndShifts::poseidon2_perm_mem_input_3_,
101 ColumnAndShifts::poseidon2_perm_mem_input_tag_3_, ColumnAndShifts::precomputed_zero
102 };
103 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
104 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
105 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
106 };
107};
108
110template <typename FF_>
113
115
117 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_WRITE_MEM_0";
118 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
119 static constexpr size_t COLUMNS_PER_SET = 6;
120 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_exec;
121 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_write_0_;
122 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_write_mem_0_inv;
123 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
124 ColumnAndShifts::poseidon2_perm_mem_execution_clk,
125 ColumnAndShifts::poseidon2_perm_mem_space_id,
126 ColumnAndShifts::poseidon2_perm_mem_write_address_0_,
127 ColumnAndShifts::poseidon2_perm_mem_output_0_,
128 ColumnAndShifts::precomputed_zero,
129 ColumnAndShifts::poseidon2_perm_mem_sel_should_exec
130 };
131 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
132 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
133 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
134 };
135};
136
138template <typename FF_>
141
143
145 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_WRITE_MEM_1";
146 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
147 static constexpr size_t COLUMNS_PER_SET = 6;
148 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_exec;
149 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_write_1_;
150 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_write_mem_1_inv;
151 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
152 ColumnAndShifts::poseidon2_perm_mem_execution_clk,
153 ColumnAndShifts::poseidon2_perm_mem_space_id,
154 ColumnAndShifts::poseidon2_perm_mem_write_address_1_,
155 ColumnAndShifts::poseidon2_perm_mem_output_1_,
156 ColumnAndShifts::precomputed_zero,
157 ColumnAndShifts::poseidon2_perm_mem_sel_should_exec
158 };
159 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
160 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
161 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
162 };
163};
164
166template <typename FF_>
169
171
173 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_WRITE_MEM_2";
174 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
175 static constexpr size_t COLUMNS_PER_SET = 6;
176 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_exec;
177 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_write_2_;
178 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_write_mem_2_inv;
179 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
180 ColumnAndShifts::poseidon2_perm_mem_execution_clk,
181 ColumnAndShifts::poseidon2_perm_mem_space_id,
182 ColumnAndShifts::poseidon2_perm_mem_write_address_2_,
183 ColumnAndShifts::poseidon2_perm_mem_output_2_,
184 ColumnAndShifts::precomputed_zero,
185 ColumnAndShifts::poseidon2_perm_mem_sel_should_exec
186 };
187 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
188 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
189 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
190 };
191};
192
194template <typename FF_>
197
199
201 static constexpr std::string_view NAME = "PERM_POSEIDON2_MEM_POS_WRITE_MEM_3";
202 static constexpr std::string_view RELATION_NAME = "poseidon2_mem";
203 static constexpr size_t COLUMNS_PER_SET = 6;
204 static constexpr Column SRC_SELECTOR = Column::poseidon2_perm_mem_sel_should_exec;
205 static constexpr Column DST_SELECTOR = Column::memory_sel_poseidon2_write_3_;
206 static constexpr Column INVERSES = Column::perm_poseidon2_mem_pos_write_mem_3_inv;
207 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
208 ColumnAndShifts::poseidon2_perm_mem_execution_clk,
209 ColumnAndShifts::poseidon2_perm_mem_space_id,
210 ColumnAndShifts::poseidon2_perm_mem_write_address_3_,
211 ColumnAndShifts::poseidon2_perm_mem_output_3_,
212 ColumnAndShifts::precomputed_zero,
213 ColumnAndShifts::poseidon2_perm_mem_sel_should_exec
214 };
215 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
216 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
217 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
218 };
219};
220
222template <typename FF_>
225
226} // 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 > 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
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