8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_MAX_READ_INDEX_GT";
22 static constexpr Column COUNTS = Column::lookup_data_copy_max_read_index_gt_counts;
23 static constexpr Column INVERSES = Column::lookup_data_copy_max_read_index_gt_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::data_copy_offset_plus_size,
26 ColumnAndShifts::data_copy_src_data_size,
27 ColumnAndShifts::data_copy_offset_plus_size_is_gt
29 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
30 ColumnAndShifts::gt_input_b,
31 ColumnAndShifts::gt_res };
35template <
typename FF_>
42 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_CHECK_SRC_ADDR_IN_RANGE";
47 static constexpr Column COUNTS = Column::lookup_data_copy_check_src_addr_in_range_counts;
48 static constexpr Column INVERSES = Column::lookup_data_copy_check_src_addr_in_range_inv;
49 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
50 ColumnAndShifts::data_copy_max_read_addr,
51 ColumnAndShifts::data_copy_max_mem_addr,
52 ColumnAndShifts::data_copy_src_out_of_range_err
54 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
55 ColumnAndShifts::gt_input_b,
56 ColumnAndShifts::gt_res };
61template <
typename FF_>
68 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_CHECK_DST_ADDR_IN_RANGE";
73 static constexpr Column COUNTS = Column::lookup_data_copy_check_dst_addr_in_range_counts;
74 static constexpr Column INVERSES = Column::lookup_data_copy_check_dst_addr_in_range_inv;
75 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
76 ColumnAndShifts::data_copy_max_write_addr,
77 ColumnAndShifts::data_copy_max_mem_addr,
78 ColumnAndShifts::data_copy_dst_out_of_range_err
80 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
81 ColumnAndShifts::gt_input_b,
82 ColumnAndShifts::gt_res };
87template <
typename FF_>
94 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_OFFSET_GT_MAX_READ_INDEX";
99 static constexpr Column COUNTS = Column::lookup_data_copy_offset_gt_max_read_index_counts;
100 static constexpr Column INVERSES = Column::lookup_data_copy_offset_gt_max_read_index_inv;
101 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
102 ColumnAndShifts::data_copy_offset,
103 ColumnAndShifts::data_copy_max_read_index,
104 ColumnAndShifts::data_copy_offset_gt_max_read_index
106 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
107 ColumnAndShifts::gt_input_b,
108 ColumnAndShifts::gt_res };
113template <
typename FF_>
120 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_MEM_WRITE";
125 static constexpr Column COUNTS = Column::lookup_data_copy_mem_write_counts;
127 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
128 ColumnAndShifts::data_copy_clk, ColumnAndShifts::data_copy_dst_addr,
129 ColumnAndShifts::data_copy_value, ColumnAndShifts::precomputed_zero,
130 ColumnAndShifts::data_copy_sel_mem_write, ColumnAndShifts::data_copy_dst_context_id
132 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
133 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_address, ColumnAndShifts::memory_value,
134 ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw, ColumnAndShifts::memory_space_id
139template <
typename FF_>
145 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_MEM_READ";
150 static constexpr Column COUNTS = Column::lookup_data_copy_mem_read_counts;
152 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
153 ColumnAndShifts::data_copy_clk, ColumnAndShifts::data_copy_read_addr,
154 ColumnAndShifts::data_copy_value, ColumnAndShifts::precomputed_zero,
155 ColumnAndShifts::precomputed_zero, ColumnAndShifts::data_copy_src_context_id
157 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
158 ColumnAndShifts::memory_clk, ColumnAndShifts::memory_address, ColumnAndShifts::memory_value,
159 ColumnAndShifts::memory_tag, ColumnAndShifts::memory_rw, ColumnAndShifts::memory_space_id
164template <
typename FF_>
170 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_COL_READ";
175 static constexpr Column COUNTS = Column::lookup_data_copy_col_read_counts;
177 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
178 ColumnAndShifts::data_copy_value,
179 ColumnAndShifts::data_copy_dst_context_id,
180 ColumnAndShifts::data_copy_read_addr
182 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
183 ColumnAndShifts::calldata_value, ColumnAndShifts::calldata_context_id, ColumnAndShifts::calldata_index
188template <
typename FF_>
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES