8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_SCALAR_MUL_TO_RADIX";
22 static constexpr Column COUNTS = Column::lookup_scalar_mul_to_radix_counts;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::scalar_mul_scalar,
26 ColumnAndShifts::scalar_mul_bit,
27 ColumnAndShifts::scalar_mul_bit_idx,
28 ColumnAndShifts::scalar_mul_const_two
30 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
31 ColumnAndShifts::to_radix_value,
32 ColumnAndShifts::to_radix_limb,
33 ColumnAndShifts::to_radix_limb_index,
34 ColumnAndShifts::to_radix_radix
39template <
typename FF_>
45 static constexpr std::string_view
NAME =
"LOOKUP_SCALAR_MUL_DOUBLE";
50 static constexpr Column COUNTS = Column::lookup_scalar_mul_double_counts;
52 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
53 ColumnAndShifts::scalar_mul_temp_x, ColumnAndShifts::scalar_mul_temp_y,
54 ColumnAndShifts::scalar_mul_temp_inf, ColumnAndShifts::scalar_mul_temp_x_shift,
55 ColumnAndShifts::scalar_mul_temp_y_shift, ColumnAndShifts::scalar_mul_temp_inf_shift,
56 ColumnAndShifts::scalar_mul_sel_not_end
58 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
59 ColumnAndShifts::ecc_r_x, ColumnAndShifts::ecc_r_y, ColumnAndShifts::ecc_r_is_inf,
60 ColumnAndShifts::ecc_p_x, ColumnAndShifts::ecc_p_y, ColumnAndShifts::ecc_p_is_inf,
61 ColumnAndShifts::ecc_double_op
66template <
typename FF_>
72 static constexpr std::string_view
NAME =
"LOOKUP_SCALAR_MUL_ADD";
77 static constexpr Column COUNTS = Column::lookup_scalar_mul_add_counts;
79 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
80 ColumnAndShifts::scalar_mul_res_x, ColumnAndShifts::scalar_mul_res_y,
81 ColumnAndShifts::scalar_mul_res_inf, ColumnAndShifts::scalar_mul_res_x_shift,
82 ColumnAndShifts::scalar_mul_res_y_shift, ColumnAndShifts::scalar_mul_res_inf_shift,
83 ColumnAndShifts::scalar_mul_temp_x, ColumnAndShifts::scalar_mul_temp_y,
84 ColumnAndShifts::scalar_mul_temp_inf
86 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
87 ColumnAndShifts::ecc_r_x, ColumnAndShifts::ecc_r_y, ColumnAndShifts::ecc_r_is_inf,
88 ColumnAndShifts::ecc_p_x, ColumnAndShifts::ecc_p_y, ColumnAndShifts::ecc_p_is_inf,
89 ColumnAndShifts::ecc_q_x, ColumnAndShifts::ecc_q_y, ColumnAndShifts::ecc_q_is_inf
94template <
typename FF_>
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
Settings to be passed ot GenericLookupRelationImpl.