10#include <gtest/gtest.h>
41 EXPECT_TRUE(lhs_gen.on_curve());
42 EXPECT_TRUE(rhs_gen.on_curve());
45 EXPECT_NE(lhs_gen, rhs_gen);
48 EXPECT_EQ(lhs_lo, lhs_gen);
49 EXPECT_EQ(rhs_lo, rhs_gen);
74 for (
size_t i = 0; i < lookup_table.size(); ++i) {
75 element expected = element(offset_gen) + element(base_point) * i;
79 EXPECT_TRUE(lookup_table[i].on_curve());
112 for (
const auto& multi_table : all_tables) {
113 for (
const auto& sub_table : multi_table) {
117 for (
const auto& point : sub_table) {
118 EXPECT_TRUE(point.on_curve());
153 EXPECT_NE(basic_table.get_values_from_key,
nullptr);
157 for (
size_t i = 0; i < basic_table.column_1.size(); ++i) {
158 EXPECT_EQ(basic_table.column_1[i],
bb::fr(i));
165 auto values = basic_table.get_values_from_key(test_key);
168 EXPECT_EQ(values[0], basic_table.column_2[test_idx]);
169 EXPECT_EQ(values[1], basic_table.column_3[test_idx]);
173 auto multi_table = table::get_fixed_base_table<0, table::BITS_PER_LO_SCALAR>(
FIXED_BASE_LEFT_LO);
182 for (
size_t i = 0; i < multi_table.get_table_values.size(); ++i) {
183 EXPECT_NE(multi_table.get_table_values[i],
nullptr);
204 EXPECT_EQ(basic_table.column_1.size(), 4);
209 auto hi_basic_table = table::generate_basic_fixed_base_table<1>(
element class. Implements ecc group arithmetic using Jacobian coordinates See https://hyperelliptic....
group_elements::affine_element< Fq, Fr, Params > affine_element
static constexpr affine_element affine_one
group_elements::element< Fq, Fr, Params > element
static affine_element get_generator_offset_for_table_id(MultiTableId table_id)
Given a table id, return the offset generator term that will be present in the final scalar mul outpu...
static constexpr uint256_t MAX_LO_SCALAR
static constexpr affine_element rhs_generator_point()
static single_lookup_table generate_single_lookup_table(const affine_element &base_point, const affine_element &offset_generator)
Given a base_point [P] and an offset_generator [G], compute a lookup table of MAX_TABLE_SIZE that con...
static const all_multi_tables & fixed_base_tables()
static affine_element lhs_base_point_lo()
static affine_element rhs_base_point_lo()
static const std::array< affine_element, table::NUM_FIXED_BASE_MULTI_TABLES > & fixed_base_table_offset_generators()
offset generators!
static affine_element lhs_base_point_hi()
static BasicTable generate_basic_fixed_base_table(BasicTableId id, size_t basic_table_index, size_t table_index)
Generate a single fixed-base-scalar-mul plookup table.
static constexpr affine_element lhs_generator_point()
static affine_element rhs_base_point_hi()
grumpkin::g1::affine_element affine_element
TEST_F(FixedBaseTableTest, GeneratorPointsAndBasePointRelationships)
Test that generator points are correctly initialized and have the expected relationships.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr size_t NUM_FIXED_BASE_MULTI_TABLES
static constexpr size_t MAX_TABLE_SIZE
static constexpr size_t NUM_TABLES_PER_HI_MULTITABLE
static constexpr size_t NUM_TABLES_PER_LO_MULTITABLE