Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::plookup::ecc_generator_tables::ecc_generator_table< G1 > Class Template Reference

#include <non_native_group_generator.hpp>

Public Types

using element = typename G1::element
 

Static Public Member Functions

static void init_generator_tables ()
 
static size_t convert_position_to_shifted_naf (const size_t position)
 
static size_t convert_shifted_naf_to_position (const size_t shifted_naf)
 
static std::array< fr, 2 > get_xlo_endo_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_xlo_values (const std::array< uint64_t, 2 > key)
 
static std::array< fr, 2 > get_xhi_values (const std::array< uint64_t, 2 > key)
 
static std::array< fr, 2 > get_ylo_values (const std::array< uint64_t, 2 > key)
 
static std::array< fr, 2 > get_yhi_values (const std::array< uint64_t, 2 > key)
 
static std::array< fr, 2 > get_xyprime_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 BasicTable generate_xlo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xhi_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xlo_endo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xhi_endo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_ylo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_yhi_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xyprime_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xyprime_endo_table (BasicTableId id, const size_t table_index)
 
static MultiTable get_xlo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xhi_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xlo_endo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xhi_endo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_ylo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_yhi_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xyprime_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xyprime_endo_table (const MultiTableId id, const BasicTableId basic_id)
 

Static Public Attributes

static std::array< std::pair< fr, fr >, 256 > generator_endo_xlo_table
 
static std::array< std::pair< fr, fr >, 256 > generator_endo_xhi_table
 
static std::array< std::pair< fr, fr >, 256 > generator_xlo_table
 
static std::array< std::pair< fr, fr >, 256 > generator_xhi_table
 
static std::array< std::pair< fr, fr >, 256 > generator_ylo_table
 
static std::array< std::pair< fr, fr >, 256 > generator_yhi_table
 
static std::array< std::pair< fr, fr >, 256 > generator_xyprime_table
 
static std::array< std::pair< fr, fr >, 256 > generator_endo_xyprime_table
 
static bool init = false
 

Detailed Description

template<typename G1>
class bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >

Definition at line 17 of file non_native_group_generator.hpp.

Member Typedef Documentation

◆ element

template<typename G1 >
using bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::element = typename G1::element

Definition at line 19 of file non_native_group_generator.hpp.

Member Function Documentation

◆ convert_position_to_shifted_naf()

template<typename G1 >
size_t bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::convert_position_to_shifted_naf ( const size_t  position)
static

Definition at line 84 of file non_native_group_generator.cpp.

◆ convert_shifted_naf_to_position()

template<typename G1 >
size_t bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::convert_shifted_naf_to_position ( const size_t  shifted_naf)
static

Definition at line 89 of file non_native_group_generator.cpp.

◆ generate_xhi_endo_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xhi_endo_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 257 of file non_native_group_generator.cpp.

◆ generate_xhi_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xhi_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 209 of file non_native_group_generator.cpp.

◆ generate_xlo_endo_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xlo_endo_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 233 of file non_native_group_generator.cpp.

◆ generate_xlo_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xlo_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 186 of file non_native_group_generator.cpp.

◆ generate_xyprime_endo_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xyprime_endo_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 351 of file non_native_group_generator.cpp.

◆ generate_xyprime_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_xyprime_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 327 of file non_native_group_generator.cpp.

◆ generate_yhi_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_yhi_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 303 of file non_native_group_generator.cpp.

◆ generate_ylo_table()

template<typename G1 >
BasicTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generate_ylo_table ( BasicTableId  id,
const size_t  table_index 
)
static

Definition at line 280 of file non_native_group_generator.cpp.

◆ get_xhi_endo_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_endo_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 420 of file non_native_group_generator.cpp.

◆ get_xhi_endo_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of x-coordinate (for endomorphism point \lambda.[1])

Definition at line 132 of file non_native_group_generator.cpp.

◆ get_xhi_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 390 of file non_native_group_generator.cpp.

◆ get_xhi_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of x-coordinate

Definition at line 108 of file non_native_group_generator.cpp.

◆ get_xlo_endo_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_endo_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 405 of file non_native_group_generator.cpp.

◆ get_xlo_endo_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of x-coordinate (for endomorphism point \lambda.[P])

Definition at line 120 of file non_native_group_generator.cpp.

◆ get_xlo_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 375 of file non_native_group_generator.cpp.

◆ get_xlo_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of x-coordinate

Definition at line 97 of file non_native_group_generator.cpp.

◆ get_xyprime_endo_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_endo_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 480 of file non_native_group_generator.cpp.

◆ get_xyprime_endo_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get the prime basis limbs for the x and y coordinates (endomorphism version for \lambda.[1])

Definition at line 178 of file non_native_group_generator.cpp.

◆ get_xyprime_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 465 of file non_native_group_generator.cpp.

◆ get_xyprime_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_values ( const std::array< uint64_t, 2 >  key)
static

Get the prime basis limbs for the x and y coordinates

Definition at line 166 of file non_native_group_generator.cpp.

◆ get_yhi_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_yhi_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 450 of file non_native_group_generator.cpp.

◆ get_yhi_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_yhi_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of y-coordinate

Definition at line 154 of file non_native_group_generator.cpp.

◆ get_ylo_table()

template<typename G1 >
MultiTable bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_ylo_table ( const MultiTableId  id,
const BasicTableId  basic_id 
)
static

Definition at line 435 of file non_native_group_generator.cpp.

◆ get_ylo_values()

template<typename G1 >
std::array< bb::fr, 2 > bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_ylo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of y-coordinate

Definition at line 143 of file non_native_group_generator.cpp.

◆ init_generator_tables()

template<typename G1 >
void bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::init_generator_tables ( )
static

Init 8-bit generator lookup tables The 8-bit wNAF is structured so that entries are in the range [0, ..., 255]

The actual scalar value = (wNAF * 2) - 255

scalar values are from the values [-255, -253, ..., -3, -1, 1, 3, ..., 253, 255]

Definition at line 19 of file non_native_group_generator.cpp.

Member Data Documentation

◆ generator_endo_xhi_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_endo_xhi_table
inlinestatic

Definition at line 25 of file non_native_group_generator.hpp.

◆ generator_endo_xlo_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_endo_xlo_table
inlinestatic

Store arrays of precomputed 8-bit lookup tables for generator point coordinates (and their endomorphism equivalents)

Definition at line 24 of file non_native_group_generator.hpp.

◆ generator_endo_xyprime_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_endo_xyprime_table
inlinestatic

Definition at line 31 of file non_native_group_generator.hpp.

◆ generator_xhi_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_xhi_table
inlinestatic

Definition at line 27 of file non_native_group_generator.hpp.

◆ generator_xlo_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_xlo_table
inlinestatic

Definition at line 26 of file non_native_group_generator.hpp.

◆ generator_xyprime_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_xyprime_table
inlinestatic

Definition at line 30 of file non_native_group_generator.hpp.

◆ generator_yhi_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_yhi_table
inlinestatic

Definition at line 29 of file non_native_group_generator.hpp.

◆ generator_ylo_table

template<typename G1 >
std::array<std::pair<fr, fr>, 256> bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_ylo_table
inlinestatic

Definition at line 28 of file non_native_group_generator.hpp.

◆ init

template<typename G1 >
bool bb::plookup::ecc_generator_tables::ecc_generator_table< G1 >::init = false
inlinestatic

Definition at line 32 of file non_native_group_generator.hpp.


The documentation for this class was generated from the following files: