8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_OFFSET_PLUS_SIZE_IS_GT_DATA_SIZE";
22 static constexpr Column COUNTS = Column::lookup_data_copy_offset_plus_size_is_gt_data_size_counts;
23 static constexpr Column INVERSES = Column::lookup_data_copy_offset_plus_size_is_gt_data_size_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 };
36template <
typename FF_>
43 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_CHECK_SRC_ADDR_IN_RANGE";
48 static constexpr Column COUNTS = Column::lookup_data_copy_check_src_addr_in_range_counts;
49 static constexpr Column INVERSES = Column::lookup_data_copy_check_src_addr_in_range_inv;
50 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
51 ColumnAndShifts::data_copy_read_addr_upper_bound,
52 ColumnAndShifts::data_copy_mem_size,
53 ColumnAndShifts::data_copy_src_out_of_range_err
55 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
56 ColumnAndShifts::gt_input_b,
57 ColumnAndShifts::gt_res };
62template <
typename FF_>
69 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_CHECK_DST_ADDR_IN_RANGE";
74 static constexpr Column COUNTS = Column::lookup_data_copy_check_dst_addr_in_range_counts;
75 static constexpr Column INVERSES = Column::lookup_data_copy_check_dst_addr_in_range_inv;
76 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
77 ColumnAndShifts::data_copy_write_addr_upper_bound,
78 ColumnAndShifts::data_copy_mem_size,
79 ColumnAndShifts::data_copy_dst_out_of_range_err
81 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
82 ColumnAndShifts::gt_input_b,
83 ColumnAndShifts::gt_res };
88template <
typename FF_>
95 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_DATA_INDEX_UPPER_BOUND_GT_OFFSET";
100 static constexpr Column COUNTS = Column::lookup_data_copy_data_index_upper_bound_gt_offset_counts;
101 static constexpr Column INVERSES = Column::lookup_data_copy_data_index_upper_bound_gt_offset_inv;
102 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
103 ColumnAndShifts::data_copy_data_index_upper_bound,
104 ColumnAndShifts::data_copy_offset,
105 ColumnAndShifts::data_copy_data_index_upper_bound_gt_offset
107 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
108 ColumnAndShifts::gt_input_b,
109 ColumnAndShifts::gt_res };
114template <
typename FF_>
121 static constexpr std::string_view
NAME =
"LOOKUP_DATA_COPY_COL_READ";
126 static constexpr Column COUNTS = Column::lookup_data_copy_col_read_counts;
128 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
129 ColumnAndShifts::data_copy_read_addr_plus_one,
130 ColumnAndShifts::data_copy_dst_context_id,
131 ColumnAndShifts::data_copy_value
133 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
134 ColumnAndShifts::calldata_index, ColumnAndShifts::calldata_context_id, ColumnAndShifts::calldata_value
139template <
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR