8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_0";
23 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
24 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
25 ColumnAndShifts::sha256_memory_address_0_, ColumnAndShifts::sha256_memory_register_0_,
26 ColumnAndShifts::sha256_memory_tag_0_, ColumnAndShifts::sha256_rw
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
35template <
typename FF_>
41 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_1";
47 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
48 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
49 ColumnAndShifts::sha256_memory_address_1_, ColumnAndShifts::sha256_memory_register_1_,
50 ColumnAndShifts::sha256_memory_tag_1_, ColumnAndShifts::sha256_rw
52 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
53 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
54 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
59template <
typename FF_>
65 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_2";
71 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
72 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
73 ColumnAndShifts::sha256_memory_address_2_, ColumnAndShifts::sha256_memory_register_2_,
74 ColumnAndShifts::sha256_memory_tag_2_, ColumnAndShifts::sha256_rw
76 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
77 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
78 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
83template <
typename FF_>
89 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_3";
95 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
96 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
97 ColumnAndShifts::sha256_memory_address_3_, ColumnAndShifts::sha256_memory_register_3_,
98 ColumnAndShifts::sha256_memory_tag_3_, ColumnAndShifts::sha256_rw
100 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
101 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
102 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
107template <
typename FF_>
113 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_4";
119 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
120 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
121 ColumnAndShifts::sha256_memory_address_4_, ColumnAndShifts::sha256_memory_register_4_,
122 ColumnAndShifts::sha256_memory_tag_4_, ColumnAndShifts::sha256_rw
124 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
125 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
126 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
131template <
typename FF_>
137 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_5";
143 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
144 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
145 ColumnAndShifts::sha256_memory_address_5_, ColumnAndShifts::sha256_memory_register_5_,
146 ColumnAndShifts::sha256_memory_tag_5_, ColumnAndShifts::sha256_rw
148 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
149 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
150 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
155template <
typename FF_>
161 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_6";
167 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
168 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
169 ColumnAndShifts::sha256_memory_address_6_, ColumnAndShifts::sha256_memory_register_6_,
170 ColumnAndShifts::sha256_memory_tag_6_, ColumnAndShifts::sha256_rw
172 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
173 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
174 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
179template <
typename FF_>
185 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_OP_7";
191 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
192 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id,
193 ColumnAndShifts::sha256_memory_address_7_, ColumnAndShifts::sha256_memory_register_7_,
194 ColumnAndShifts::sha256_memory_tag_7_, ColumnAndShifts::sha256_rw
196 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
197 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
198 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
203template <
typename FF_>
209 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_MEM_INPUT_READ";
215 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
216 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id, ColumnAndShifts::sha256_input_addr,
217 ColumnAndShifts::sha256_input, ColumnAndShifts::sha256_input_tag, ColumnAndShifts::precomputed_zero
219 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
220 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_space_id, ColumnAndShifts::memory_address,
221 ColumnAndShifts::memory_value, ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw
226template <
typename FF_>
232 static constexpr std::string_view
NAME =
"PERM_SHA256_MEM_DISPATCH_SHA256";
238 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
SRC_COLUMNS = {
239 ColumnAndShifts::precomputed_clk, ColumnAndShifts::execution_context_id,
240 ColumnAndShifts::execution_rop_0_, ColumnAndShifts::execution_rop_1_,
241 ColumnAndShifts::execution_rop_2_, ColumnAndShifts::execution_sel_opcode_error
243 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET>
DST_COLUMNS = {
244 ColumnAndShifts::sha256_execution_clk, ColumnAndShifts::sha256_space_id, ColumnAndShifts::sha256_output_addr,
245 ColumnAndShifts::sha256_state_addr, ColumnAndShifts::sha256_input_addr, ColumnAndShifts::sha256_err
250template <
typename FF_>
This file contains the template for the generic permutation that can be specialized to enforce variou...
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
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 Column INVERSES
static constexpr size_t COLUMNS_PER_SET
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t COLUMNS_PER_SET
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
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::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr size_t COLUMNS_PER_SET
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr size_t COLUMNS_PER_SET
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr size_t COLUMNS_PER_SET
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t COLUMNS_PER_SET
static constexpr std::array< ColumnAndShifts, COLUMNS_PER_SET > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME