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_10,
25 ColumnAndShifts::keccakf1600_state_in_20, ColumnAndShifts::keccakf1600_state_in_30,
26 ColumnAndShifts::keccakf1600_state_in_40, ColumnAndShifts::keccakf1600_state_in_01,
27 ColumnAndShifts::keccakf1600_state_in_11, ColumnAndShifts::keccakf1600_state_in_21,
28 ColumnAndShifts::keccakf1600_state_in_31, ColumnAndShifts::keccakf1600_state_in_41,
29 ColumnAndShifts::keccakf1600_state_in_02, ColumnAndShifts::keccakf1600_state_in_12,
30 ColumnAndShifts::keccakf1600_state_in_22, ColumnAndShifts::keccakf1600_state_in_32,
31 ColumnAndShifts::keccakf1600_state_in_42, ColumnAndShifts::keccakf1600_state_in_03,
32 ColumnAndShifts::keccakf1600_state_in_13, ColumnAndShifts::keccakf1600_state_in_23,
33 ColumnAndShifts::keccakf1600_state_in_33, ColumnAndShifts::keccakf1600_state_in_43,
34 ColumnAndShifts::keccakf1600_state_in_04, ColumnAndShifts::keccakf1600_state_in_14,
35 ColumnAndShifts::keccakf1600_state_in_24, ColumnAndShifts::keccakf1600_state_in_34,
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_val_0_, ColumnAndShifts::keccak_memory_val_1_,
42 ColumnAndShifts::keccak_memory_val_2_, ColumnAndShifts::keccak_memory_val_3_,
43 ColumnAndShifts::keccak_memory_val_4_, ColumnAndShifts::keccak_memory_val_5_,
44 ColumnAndShifts::keccak_memory_val_6_, ColumnAndShifts::keccak_memory_val_7_,
45 ColumnAndShifts::keccak_memory_val_8_, ColumnAndShifts::keccak_memory_val_9_,
46 ColumnAndShifts::keccak_memory_val_10_, ColumnAndShifts::keccak_memory_val_11_,
47 ColumnAndShifts::keccak_memory_val_12_, ColumnAndShifts::keccak_memory_val_13_,
48 ColumnAndShifts::keccak_memory_val_14_, ColumnAndShifts::keccak_memory_val_15_,
49 ColumnAndShifts::keccak_memory_val_16_, ColumnAndShifts::keccak_memory_val_17_,
50 ColumnAndShifts::keccak_memory_val_18_, ColumnAndShifts::keccak_memory_val_19_,
51 ColumnAndShifts::keccak_memory_val_20_, ColumnAndShifts::keccak_memory_val_21_,
52 ColumnAndShifts::keccak_memory_val_22_, ColumnAndShifts::keccak_memory_val_23_,
53 ColumnAndShifts::keccak_memory_val_24_, 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_10,
74 ColumnAndShifts::keccakf1600_state_chi_20, ColumnAndShifts::keccakf1600_state_chi_30,
75 ColumnAndShifts::keccakf1600_state_chi_40, ColumnAndShifts::keccakf1600_state_chi_01,
76 ColumnAndShifts::keccakf1600_state_chi_11, ColumnAndShifts::keccakf1600_state_chi_21,
77 ColumnAndShifts::keccakf1600_state_chi_31, ColumnAndShifts::keccakf1600_state_chi_41,
78 ColumnAndShifts::keccakf1600_state_chi_02, ColumnAndShifts::keccakf1600_state_chi_12,
79 ColumnAndShifts::keccakf1600_state_chi_22, ColumnAndShifts::keccakf1600_state_chi_32,
80 ColumnAndShifts::keccakf1600_state_chi_42, ColumnAndShifts::keccakf1600_state_chi_03,
81 ColumnAndShifts::keccakf1600_state_chi_13, ColumnAndShifts::keccakf1600_state_chi_23,
82 ColumnAndShifts::keccakf1600_state_chi_33, ColumnAndShifts::keccakf1600_state_chi_43,
83 ColumnAndShifts::keccakf1600_state_chi_04, ColumnAndShifts::keccakf1600_state_chi_14,
84 ColumnAndShifts::keccakf1600_state_chi_24, ColumnAndShifts::keccakf1600_state_chi_34,
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_val_0_, ColumnAndShifts::keccak_memory_val_1_,
91 ColumnAndShifts::keccak_memory_val_2_, ColumnAndShifts::keccak_memory_val_3_,
92 ColumnAndShifts::keccak_memory_val_4_, ColumnAndShifts::keccak_memory_val_5_,
93 ColumnAndShifts::keccak_memory_val_6_, ColumnAndShifts::keccak_memory_val_7_,
94 ColumnAndShifts::keccak_memory_val_8_, ColumnAndShifts::keccak_memory_val_9_,
95 ColumnAndShifts::keccak_memory_val_10_, ColumnAndShifts::keccak_memory_val_11_,
96 ColumnAndShifts::keccak_memory_val_12_, ColumnAndShifts::keccak_memory_val_13_,
97 ColumnAndShifts::keccak_memory_val_14_, ColumnAndShifts::keccak_memory_val_15_,
98 ColumnAndShifts::keccak_memory_val_16_, ColumnAndShifts::keccak_memory_val_17_,
99 ColumnAndShifts::keccak_memory_val_18_, ColumnAndShifts::keccak_memory_val_19_,
100 ColumnAndShifts::keccak_memory_val_20_, ColumnAndShifts::keccak_memory_val_21_,
101 ColumnAndShifts::keccak_memory_val_22_, ColumnAndShifts::keccak_memory_val_23_,
102 ColumnAndShifts::keccak_memory_val_24_, 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