Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
non_native_group_generator.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
8
9#include "./types.hpp"
13#include <array>
14
16
17template <typename G1> class ecc_generator_table {
18 public:
19 using element = typename G1::element;
32 inline static bool init = false;
33
34 static void init_generator_tables();
35
36 static size_t convert_position_to_shifted_naf(const size_t position);
37 static size_t convert_shifted_naf_to_position(const size_t shifted_naf);
46 static BasicTable generate_xlo_table(BasicTableId id, const size_t table_index);
47 static BasicTable generate_xhi_table(BasicTableId id, const size_t table_index);
48 static BasicTable generate_xlo_endo_table(BasicTableId id, const size_t table_index);
49 static BasicTable generate_xhi_endo_table(BasicTableId id, const size_t table_index);
50 static BasicTable generate_ylo_table(BasicTableId id, const size_t table_index);
51 static BasicTable generate_yhi_table(BasicTableId id, const size_t table_index);
52 static BasicTable generate_xyprime_table(BasicTableId id, const size_t table_index);
53 static BasicTable generate_xyprime_endo_table(BasicTableId id, const size_t table_index);
54 static MultiTable get_xlo_table(const MultiTableId id, const BasicTableId basic_id);
55 static MultiTable get_xhi_table(const MultiTableId id, const BasicTableId basic_id);
56 static MultiTable get_xlo_endo_table(const MultiTableId id, const BasicTableId basic_id);
57 static MultiTable get_xhi_endo_table(const MultiTableId id, const BasicTableId basic_id);
58 static MultiTable get_ylo_table(const MultiTableId id, const BasicTableId basic_id);
59 static MultiTable get_yhi_table(const MultiTableId id, const BasicTableId basic_id);
60 static MultiTable get_xyprime_table(const MultiTableId id, const BasicTableId basic_id);
61 static MultiTable get_xyprime_endo_table(const MultiTableId id, const BasicTableId basic_id);
62};
63
64} // namespace bb::plookup::ecc_generator_tables
static MultiTable get_yhi_table(const MultiTableId id, const BasicTableId basic_id)
static MultiTable get_xyprime_endo_table(const MultiTableId id, const BasicTableId basic_id)
static BasicTable generate_xlo_table(BasicTableId id, const size_t table_index)
static std::array< fr, 2 > get_xlo_endo_values(const std::array< uint64_t, 2 > key)
static BasicTable generate_xyprime_endo_table(BasicTableId id, const size_t table_index)
static BasicTable generate_yhi_table(BasicTableId id, const size_t table_index)
static BasicTable generate_xlo_endo_table(BasicTableId id, const size_t table_index)
static std::array< std::pair< fr, fr >, 256 > generator_xyprime_table
static std::array< fr, 2 > get_xhi_values(const std::array< uint64_t, 2 > key)
static std::array< fr, 2 > get_xyprime_endo_values(const std::array< uint64_t, 2 > key)
static std::array< fr, 2 > get_xlo_values(const std::array< uint64_t, 2 > key)
static BasicTable generate_ylo_table(BasicTableId id, const size_t table_index)
static BasicTable generate_xhi_table(BasicTableId id, const size_t table_index)
static std::array< std::pair< fr, fr >, 256 > generator_endo_xyprime_table
static std::array< fr, 2 > get_yhi_values(const std::array< uint64_t, 2 > key)
static std::array< std::pair< fr, fr >, 256 > generator_yhi_table
static std::array< std::pair< fr, fr >, 256 > generator_xlo_table
static size_t convert_shifted_naf_to_position(const size_t shifted_naf)
static std::array< std::pair< fr, fr >, 256 > generator_ylo_table
static MultiTable get_xlo_endo_table(const MultiTableId id, const BasicTableId basic_id)
static std::array< std::pair< fr, fr >, 256 > generator_xhi_table
static std::array< std::pair< fr, fr >, 256 > generator_endo_xlo_table
static std::array< fr, 2 > get_ylo_values(const std::array< uint64_t, 2 > key)
static std::array< fr, 2 > get_xhi_endo_values(const std::array< uint64_t, 2 > key)
static std::array< fr, 2 > get_xyprime_values(const std::array< uint64_t, 2 > key)
static MultiTable get_xyprime_table(const MultiTableId id, const BasicTableId basic_id)
static MultiTable get_xhi_endo_table(const MultiTableId id, const BasicTableId basic_id)
static BasicTable generate_xyprime_table(BasicTableId id, const size_t table_index)
static BasicTable generate_xhi_endo_table(BasicTableId id, const size_t table_index)
static std::array< std::pair< fr, fr >, 256 > generator_endo_xhi_table
static MultiTable get_xhi_table(const MultiTableId id, const BasicTableId basic_id)
static MultiTable get_xlo_table(const MultiTableId id, const BasicTableId basic_id)
static MultiTable get_ylo_table(const MultiTableId id, const BasicTableId basic_id)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
A basic table from which we can perform lookups (for example, an xor table)
Definition types.hpp:348
Container for managing multiple BasicTables plus the data needed to combine basic table outputs (e....
Definition types.hpp:154