Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length > Struct Template Reference

Public Member Functions

 lookup_table_base (const std::array< element, length > &inputs)
 
 lookup_table_base (const lookup_table_base &other)=default
 
lookup_table_baseoperator= (const lookup_table_base &other)=default
 
element get (const std::array< bool_ct, length > &bits) const
 
element operator[] (const size_t idx) const
 

Public Attributes

std::array< field_t< Builder >, table_size > x_b0_table
 
std::array< field_t< Builder >, table_size > x_b1_table
 
std::array< field_t< Builder >, table_size > x_b2_table
 
std::array< field_t< Builder >, table_size > x_b3_table
 
std::array< field_t< Builder >, table_size > y_b0_table
 
std::array< field_t< Builder >, table_size > y_b1_table
 
std::array< field_t< Builder >, table_size > y_b2_table
 
std::array< field_t< Builder >, table_size > y_b3_table
 
element twin0
 
element twin1
 
std::array< element, table_size > element_table
 

Static Public Attributes

static constexpr size_t table_size = (1ULL << (length - 1))
 

Detailed Description

template<class Builder_, class Fq, class Fr, class NativeGroup>
template<size_t length>
struct bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >

Creates a lookup table for a set of 2, 3 or 4 points

The lookup table computes linear combinations of all of the points

e.g. for 3 points A, B, C, the table represents the following values:

0 0 0 -> C+B+A 0 0 1 -> C+B-A 0 1 0 -> C-B+A 0 1 1 -> C-B-A 1 0 0 -> -C+B+A 1 0 1 -> -C+B-A 1 1 0 -> -C-B+A 1 1 1 -> -C-B-A

The table KEY is 3 1-bit NAF entries that correspond to scalar multipliers for base points A, B, C

Definition at line 505 of file biggroup.hpp.

Constructor & Destructor Documentation

◆ lookup_table_base() [1/2]

template<typename C , class Fq , class Fr , class G >
template<size_t length>
bb::stdlib::element_default::element< C, Fq, Fr, G >::lookup_table_base< length >::lookup_table_base ( const std::array< element, length > &  inputs)

lookup_table_base

Definition at line 433 of file biggroup_tables.hpp.

◆ lookup_table_base() [2/2]

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::lookup_table_base ( const lookup_table_base< length > &  other)
default

Member Function Documentation

◆ get()

template<typename C , class Fq , class Fr , class G >
template<size_t length>
element< C, Fq, Fr, G > bb::stdlib::element_default::element< C, Fq, Fr, G >::lookup_table_base< length >::get ( const std::array< bool_ct, length > &  bits) const

Definition at line 567 of file biggroup_tables.hpp.

◆ operator=()

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
lookup_table_base & bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::operator= ( const lookup_table_base< length > &  other)
default

◆ operator[]()

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
element bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::operator[] ( const size_t  idx) const
inline

Definition at line 513 of file biggroup.hpp.

Member Data Documentation

◆ element_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<element, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::element_table

Definition at line 526 of file biggroup.hpp.

◆ table_size

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
constexpr size_t bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::table_size = (1ULL << (length - 1))
staticconstexpr

Definition at line 506 of file biggroup.hpp.

◆ twin0

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
element bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::twin0

Definition at line 524 of file biggroup.hpp.

◆ twin1

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
element bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::twin1

Definition at line 525 of file biggroup.hpp.

◆ x_b0_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::x_b0_table

Definition at line 515 of file biggroup.hpp.

◆ x_b1_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::x_b1_table

Definition at line 516 of file biggroup.hpp.

◆ x_b2_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::x_b2_table

Definition at line 517 of file biggroup.hpp.

◆ x_b3_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::x_b3_table

Definition at line 518 of file biggroup.hpp.

◆ y_b0_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::y_b0_table

Definition at line 520 of file biggroup.hpp.

◆ y_b1_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::y_b1_table

Definition at line 521 of file biggroup.hpp.

◆ y_b2_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::y_b2_table

Definition at line 522 of file biggroup.hpp.

◆ y_b3_table

template<class Builder_ , class Fq , class Fr , class NativeGroup >
template<size_t length>
std::array<field_t<Builder>, table_size> bb::stdlib::element_default::element< Builder_, Fq, Fr, NativeGroup >::lookup_table_base< length >::y_b3_table

Definition at line 523 of file biggroup.hpp.


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