Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
perms_keccakf1600.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_KECCAKF1600_READ_TO_SLICE";
18 static constexpr std::string_view RELATION_NAME = "keccakf1600";
19 static constexpr size_t COLUMNS_PER_SET = 29;
20 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_slice_read;
21 static constexpr Column DST_SELECTOR = Column::keccak_memory_start_read;
22 static constexpr Column INVERSES = Column::perm_keccakf1600_read_to_slice_inv;
23 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
24 ColumnAndShifts::keccakf1600_state_in_00, ColumnAndShifts::keccakf1600_state_in_01,
25 ColumnAndShifts::keccakf1600_state_in_02, ColumnAndShifts::keccakf1600_state_in_03,
26 ColumnAndShifts::keccakf1600_state_in_04, ColumnAndShifts::keccakf1600_state_in_10,
27 ColumnAndShifts::keccakf1600_state_in_11, ColumnAndShifts::keccakf1600_state_in_12,
28 ColumnAndShifts::keccakf1600_state_in_13, ColumnAndShifts::keccakf1600_state_in_14,
29 ColumnAndShifts::keccakf1600_state_in_20, ColumnAndShifts::keccakf1600_state_in_21,
30 ColumnAndShifts::keccakf1600_state_in_22, ColumnAndShifts::keccakf1600_state_in_23,
31 ColumnAndShifts::keccakf1600_state_in_24, ColumnAndShifts::keccakf1600_state_in_30,
32 ColumnAndShifts::keccakf1600_state_in_31, ColumnAndShifts::keccakf1600_state_in_32,
33 ColumnAndShifts::keccakf1600_state_in_33, ColumnAndShifts::keccakf1600_state_in_34,
34 ColumnAndShifts::keccakf1600_state_in_40, ColumnAndShifts::keccakf1600_state_in_41,
35 ColumnAndShifts::keccakf1600_state_in_42, ColumnAndShifts::keccakf1600_state_in_43,
36 ColumnAndShifts::keccakf1600_state_in_44, ColumnAndShifts::keccakf1600_clk,
37 ColumnAndShifts::keccakf1600_src_addr, ColumnAndShifts::keccakf1600_space_id,
38 ColumnAndShifts::keccakf1600_tag_error
39 };
40 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
41 ColumnAndShifts::keccak_memory_val00, ColumnAndShifts::keccak_memory_val01,
42 ColumnAndShifts::keccak_memory_val02, ColumnAndShifts::keccak_memory_val03,
43 ColumnAndShifts::keccak_memory_val04, ColumnAndShifts::keccak_memory_val10,
44 ColumnAndShifts::keccak_memory_val11, ColumnAndShifts::keccak_memory_val12,
45 ColumnAndShifts::keccak_memory_val13, ColumnAndShifts::keccak_memory_val14,
46 ColumnAndShifts::keccak_memory_val20, ColumnAndShifts::keccak_memory_val21,
47 ColumnAndShifts::keccak_memory_val22, ColumnAndShifts::keccak_memory_val23,
48 ColumnAndShifts::keccak_memory_val24, ColumnAndShifts::keccak_memory_val30,
49 ColumnAndShifts::keccak_memory_val31, ColumnAndShifts::keccak_memory_val32,
50 ColumnAndShifts::keccak_memory_val33, ColumnAndShifts::keccak_memory_val34,
51 ColumnAndShifts::keccak_memory_val40, ColumnAndShifts::keccak_memory_val41,
52 ColumnAndShifts::keccak_memory_val42, ColumnAndShifts::keccak_memory_val43,
53 ColumnAndShifts::keccak_memory_val44, ColumnAndShifts::keccak_memory_clk,
54 ColumnAndShifts::keccak_memory_addr, ColumnAndShifts::keccak_memory_space_id,
55 ColumnAndShifts::keccak_memory_tag_error
56 };
57};
58
60template <typename FF_>
62
64
66 static constexpr std::string_view NAME = "PERM_KECCAKF1600_WRITE_TO_SLICE";
67 static constexpr std::string_view RELATION_NAME = "keccakf1600";
68 static constexpr size_t COLUMNS_PER_SET = 29;
69 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_slice_write;
70 static constexpr Column DST_SELECTOR = Column::keccak_memory_start_write;
71 static constexpr Column INVERSES = Column::perm_keccakf1600_write_to_slice_inv;
72 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> SRC_COLUMNS = {
73 ColumnAndShifts::keccakf1600_state_iota_00, ColumnAndShifts::keccakf1600_state_chi_01,
74 ColumnAndShifts::keccakf1600_state_chi_02, ColumnAndShifts::keccakf1600_state_chi_03,
75 ColumnAndShifts::keccakf1600_state_chi_04, ColumnAndShifts::keccakf1600_state_chi_10,
76 ColumnAndShifts::keccakf1600_state_chi_11, ColumnAndShifts::keccakf1600_state_chi_12,
77 ColumnAndShifts::keccakf1600_state_chi_13, ColumnAndShifts::keccakf1600_state_chi_14,
78 ColumnAndShifts::keccakf1600_state_chi_20, ColumnAndShifts::keccakf1600_state_chi_21,
79 ColumnAndShifts::keccakf1600_state_chi_22, ColumnAndShifts::keccakf1600_state_chi_23,
80 ColumnAndShifts::keccakf1600_state_chi_24, ColumnAndShifts::keccakf1600_state_chi_30,
81 ColumnAndShifts::keccakf1600_state_chi_31, ColumnAndShifts::keccakf1600_state_chi_32,
82 ColumnAndShifts::keccakf1600_state_chi_33, ColumnAndShifts::keccakf1600_state_chi_34,
83 ColumnAndShifts::keccakf1600_state_chi_40, ColumnAndShifts::keccakf1600_state_chi_41,
84 ColumnAndShifts::keccakf1600_state_chi_42, ColumnAndShifts::keccakf1600_state_chi_43,
85 ColumnAndShifts::keccakf1600_state_chi_44, ColumnAndShifts::keccakf1600_clk,
86 ColumnAndShifts::keccakf1600_dst_addr, ColumnAndShifts::keccakf1600_space_id,
87 ColumnAndShifts::keccakf1600_round
88 };
89 static constexpr std::array<ColumnAndShifts, COLUMNS_PER_SET> DST_COLUMNS = {
90 ColumnAndShifts::keccak_memory_val00, ColumnAndShifts::keccak_memory_val01,
91 ColumnAndShifts::keccak_memory_val02, ColumnAndShifts::keccak_memory_val03,
92 ColumnAndShifts::keccak_memory_val04, ColumnAndShifts::keccak_memory_val10,
93 ColumnAndShifts::keccak_memory_val11, ColumnAndShifts::keccak_memory_val12,
94 ColumnAndShifts::keccak_memory_val13, ColumnAndShifts::keccak_memory_val14,
95 ColumnAndShifts::keccak_memory_val20, ColumnAndShifts::keccak_memory_val21,
96 ColumnAndShifts::keccak_memory_val22, ColumnAndShifts::keccak_memory_val23,
97 ColumnAndShifts::keccak_memory_val24, ColumnAndShifts::keccak_memory_val30,
98 ColumnAndShifts::keccak_memory_val31, ColumnAndShifts::keccak_memory_val32,
99 ColumnAndShifts::keccak_memory_val33, ColumnAndShifts::keccak_memory_val34,
100 ColumnAndShifts::keccak_memory_val40, ColumnAndShifts::keccak_memory_val41,
101 ColumnAndShifts::keccak_memory_val42, ColumnAndShifts::keccak_memory_val43,
102 ColumnAndShifts::keccak_memory_val44, ColumnAndShifts::keccak_memory_clk,
103 ColumnAndShifts::keccak_memory_addr, ColumnAndShifts::keccak_memory_space_id,
104 ColumnAndShifts::keccak_memory_num_rounds
105 };
106};
107
109template <typename FF_>
112
113} // 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