3#include "barretenberg/plonk/proof_system/constants.hpp"
5#include <barretenberg/common/assert.hpp>
15 static constexpr size_t BITS_PER_TABLE = 9;
16 static constexpr size_t BITS_ON_CURVE = 254;
25 static constexpr size_t BITS_PER_LO_SCALAR = 128;
26 static constexpr size_t BITS_PER_HI_SCALAR = BITS_ON_CURVE - BITS_PER_LO_SCALAR;
29 static constexpr size_t MAX_TABLE_SIZE = (1UL) << BITS_PER_TABLE;
32 static constexpr size_t MAX_NUM_TABLES_IN_MULTITABLE =
33 (BITS_PER_LO_SCALAR / BITS_PER_TABLE) + (BITS_PER_LO_SCALAR % BITS_PER_TABLE == 0 ? 0 : 1);
34 static constexpr size_t NUM_POINTS = 2;
37 static constexpr size_t NUM_FIXED_BASE_MULTI_TABLES = NUM_POINTS * 2;
38 static constexpr size_t NUM_TABLES_PER_LO_MULTITABLE =
39 (BITS_PER_LO_SCALAR / BITS_PER_TABLE) + ((BITS_PER_LO_SCALAR % BITS_PER_TABLE == 0) ? 0 : 1);
40 static constexpr size_t NUM_TABLES_PER_HI_MULTITABLE =
41 (BITS_PER_HI_SCALAR / BITS_PER_TABLE) + ((BITS_PER_HI_SCALAR % BITS_PER_TABLE == 0) ? 0 : 1);
43 static constexpr size_t NUM_BASIC_TABLES_PER_BASE_POINT =
44 (NUM_TABLES_PER_LO_MULTITABLE + NUM_TABLES_PER_HI_MULTITABLE);
47 static constexpr size_t NUM_FIXED_BASE_BASIC_TABLES = NUM_BASIC_TABLES_PER_BASE_POINT * NUM_POINTS;
58 return (num_bits / BITS_PER_TABLE) + ((num_bits % BITS_PER_TABLE == 0) ? 0 : 1);
69 ASSERT(multitable_index < NUM_FIXED_BASE_MULTI_TABLES);
70 constexpr std::array<size_t, 4> MULTI_TABLE_BIT_LENGTHS{
71 BITS_PER_LO_SCALAR, BITS_PER_HI_SCALAR, BITS_PER_LO_SCALAR, BITS_PER_HI_SCALAR
73 return MULTI_TABLE_BIT_LENGTHS[multitable_index];
Parameters definitions for our fixed-base-scalar-multiplication lookup tables.
Definition: fixed_base_params.hpp:14
static constexpr size_t get_num_bits_of_multi_table(const size_t multitable_index)
For a given multitable index, how many scalar mul bits are we traversing with our multitable?
Definition: fixed_base_params.hpp:67
static constexpr size_t get_num_tables_per_multi_table() noexcept
For a scalar multiplication table that covers input scalars up to (1 << num_bits) - 1,...
Definition: fixed_base_params.hpp:56