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;
42 inline static bool init = false;
43
44 static void init_generator_tables();
45
54 static BasicTable generate_xlo_table(BasicTableId id, const size_t table_index);
55 static BasicTable generate_xhi_table(BasicTableId id, const size_t table_index);
56 static BasicTable generate_xlo_endo_table(BasicTableId id, const size_t table_index);
57 static BasicTable generate_xhi_endo_table(BasicTableId id, const size_t table_index);
58 static BasicTable generate_ylo_table(BasicTableId id, const size_t table_index);
59 static BasicTable generate_yhi_table(BasicTableId id, const size_t table_index);
60 static BasicTable generate_xyprime_table(BasicTableId id, const size_t table_index);
61 static BasicTable generate_xyprime_endo_table(BasicTableId id, const size_t table_index);
62 static MultiTable get_xlo_table(const MultiTableId id, const BasicTableId basic_id);
63 static MultiTable get_xhi_table(const MultiTableId id, const BasicTableId basic_id);
64 static MultiTable get_xlo_endo_table(const MultiTableId id, const BasicTableId basic_id);
65 static MultiTable get_xhi_endo_table(const MultiTableId id, const BasicTableId basic_id);
66 static MultiTable get_ylo_table(const MultiTableId id, const BasicTableId basic_id);
67 static MultiTable get_yhi_table(const MultiTableId id, const BasicTableId basic_id);
68 static MultiTable get_xyprime_table(const MultiTableId id, const BasicTableId basic_id);
69 static MultiTable get_xyprime_endo_table(const MultiTableId id, const BasicTableId basic_id);
70};
71
72} // 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 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:287
Container for managing multiple BasicTables plus the data needed to combine basic table outputs (e....
Definition types.hpp:154