Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ECCVMLookupRelationImpl< FF_ > Class Template Reference

#include <ecc_lookup_relation.hpp>

Public Types

using FF = FF_
 

Static Public Member Functions

template<typename AllValues >
static bool operation_exists_at_row (const AllValues &row)
 
template<typename AllEntities >
static auto & get_inverse_polynomial (AllEntities &in)
 Get the inverse lookup polynomial.
 
template<typename Accumulator , typename AllEntities >
static Accumulator compute_inverse_exists (const AllEntities &in)
 
template<typename Accumulator , size_t index, typename AllEntities >
static Accumulator lookup_read_counts (const AllEntities &in)
 
template<typename Accumulator , size_t read_index, typename AllEntities >
static Accumulator compute_read_term_predicate (const AllEntities &in)
 
template<typename Accumulator , size_t write_index, typename AllEntities >
static Accumulator compute_write_term_predicate (const AllEntities &in)
 
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters >
static Accumulator compute_write_term (const AllEntities &in, const Parameters &params)
 
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters >
static Accumulator compute_read_term (const AllEntities &in, const Parameters &params)
 
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
 Expression for ECCVM lookup tables.
 

Static Public Attributes

static constexpr size_t READ_TERMS = 4
 
static constexpr size_t WRITE_TERMS = 2
 
static constexpr size_t LENGTH = READ_TERMS + WRITE_TERMS + 3
 
static constexpr std::array< size_t, 2 > SUBRELATION_PARTIAL_LENGTHS
 
static constexpr std::array< bool, 2 > SUBRELATION_LINEARLY_INDEPENDENT = { true, false }
 

Detailed Description

template<typename FF_>
class bb::ECCVMLookupRelationImpl< FF_ >

Definition at line 17 of file ecc_lookup_relation.hpp.

Member Typedef Documentation

◆ FF

template<typename FF_ >
using bb::ECCVMLookupRelationImpl< FF_ >::FF = FF_

Definition at line 19 of file ecc_lookup_relation.hpp.

Member Function Documentation

◆ accumulate()

template<typename FF >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
void bb::ECCVMLookupRelationImpl< FF >::accumulate ( ContainerOverSubrelations &  accumulator,
const AllEntities &  in,
const Parameters &  params,
const FF scaling_factor 
)
static

Expression for ECCVM lookup tables.

We use log-derivative lookup tables for the following case: Table writes: ECCVMPointTable columns: we define Straus point table: { {0, -15[P]}, {1, -13[P]}, ..., {15, 15[P]} } write source: { precompute_round, precompute_tx, precompute_ty } Table reads: ECCVMMSM columns. Each row adds up to 4 points into MSM accumulator read source: { msm_slice1, msm_x1, msm_y1 }, ..., { msm_slice4, msm_x4, msm_y4 }

Parameters
accumulatortransformed to evals + C(in(X)...)*scaling_factor
inan std::array containing the fully extended Accumulator edges.
relation_paramscontains beta, gamma, and public_input_delta, ....
scaling_factoroptional term to scale the evaluation before adding to evals.

We use log-derivative lookup tables for the following case: Table writes: ECCVMPointTable columns: we define Straus point table: { {0, -15[P]}, {1, -13[P]}, ..., {15, 15[P]} } write source: { precompute_round, precompute_tx, precompute_ty } Table reads: ECCVMMSM columns. Each row adds up to 4 points into MSM accumulator read source: { msm_slice1, msm_x1, msm_y1 }, ..., { msm_slice4, msm_x4, msm_y4 }

Parameters
evalstransformed to evals + C(in(X)...)*scaling_factor
inan std::array containing the fully extended Accumulator edges.
parameterscontains beta, gamma, and public_input_delta, ....
scaling_factoroptional term to scale the evaluation before adding to evals.

Definition at line 30 of file ecc_lookup_relation_impl.hpp.

◆ compute_inverse_exists()

template<typename FF_ >
template<typename Accumulator , typename AllEntities >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::compute_inverse_exists ( const AllEntities &  in)
inlinestatic

Definition at line 48 of file ecc_lookup_relation.hpp.

◆ compute_read_term()

template<typename FF_ >
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::compute_read_term ( const AllEntities &  in,
const Parameters &  params 
)
inlinestatic

Definition at line 179 of file ecc_lookup_relation.hpp.

◆ compute_read_term_predicate()

template<typename FF_ >
template<typename Accumulator , size_t read_index, typename AllEntities >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::compute_read_term_predicate ( const AllEntities &  in)
inlinestatic

Definition at line 72 of file ecc_lookup_relation.hpp.

◆ compute_write_term()

template<typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::compute_write_term ( const AllEntities &  in,
const Parameters &  params 
)
inlinestatic

Definition at line 108 of file ecc_lookup_relation.hpp.

◆ compute_write_term_predicate()

template<typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::compute_write_term_predicate ( const AllEntities &  in)
inlinestatic

Definition at line 93 of file ecc_lookup_relation.hpp.

◆ get_inverse_polynomial()

template<typename FF_ >
template<typename AllEntities >
static auto & bb::ECCVMLookupRelationImpl< FF_ >::get_inverse_polynomial ( AllEntities &  in)
inlinestatic

Get the inverse lookup polynomial.

Template Parameters
AllEntities
Parameters
in
Returns
auto&

Definition at line 45 of file ecc_lookup_relation.hpp.

◆ lookup_read_counts()

template<typename FF_ >
template<typename Accumulator , size_t index, typename AllEntities >
static Accumulator bb::ECCVMLookupRelationImpl< FF_ >::lookup_read_counts ( const AllEntities &  in)
inlinestatic

Definition at line 58 of file ecc_lookup_relation.hpp.

◆ operation_exists_at_row()

template<typename FF_ >
template<typename AllValues >
static bool bb::ECCVMLookupRelationImpl< FF_ >::operation_exists_at_row ( const AllValues &  row)
inlinestatic

Definition at line 32 of file ecc_lookup_relation.hpp.

Member Data Documentation

◆ LENGTH

template<typename FF_ >
constexpr size_t bb::ECCVMLookupRelationImpl< FF_ >::LENGTH = READ_TERMS + WRITE_TERMS + 3
staticconstexpr

Definition at line 23 of file ecc_lookup_relation.hpp.

◆ READ_TERMS

template<typename FF_ >
constexpr size_t bb::ECCVMLookupRelationImpl< FF_ >::READ_TERMS = 4
staticconstexpr

Definition at line 20 of file ecc_lookup_relation.hpp.

◆ SUBRELATION_LINEARLY_INDEPENDENT

template<typename FF_ >
constexpr std::array<bool, 2> bb::ECCVMLookupRelationImpl< FF_ >::SUBRELATION_LINEARLY_INDEPENDENT = { true, false }
staticconstexpr

Definition at line 30 of file ecc_lookup_relation.hpp.

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 2> bb::ECCVMLookupRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS
staticconstexpr
Initial value:
{
}
static constexpr size_t LENGTH

Definition at line 25 of file ecc_lookup_relation.hpp.

◆ WRITE_TERMS

template<typename FF_ >
constexpr size_t bb::ECCVMLookupRelationImpl< FF_ >::WRITE_TERMS = 2
staticconstexpr

Definition at line 21 of file ecc_lookup_relation.hpp.


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