|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <ecc_lookup_relation.hpp>
Public Types | |
| enum | SubrelationIndex : size_t { GRAND_PRODUCT = 0 , LEFT_SHIFTABLE = 1 , NUM_SUBRELATIONS } |
| 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 lookup_index, typename AllEntities > | |
| static Accumulator | get_lookup_term_predicate (const AllEntities &in) |
| template<typename Accumulator , size_t table_index, typename AllEntities > | |
| static Accumulator | get_table_term_predicate (const AllEntities &in) |
| template<typename Accumulator , size_t table_index, typename AllEntities , typename Parameters > | |
| static Accumulator | compute_table_term (const AllEntities &in, const Parameters ¶ms) |
Returns the fingerprint of (precompute_pc, compressed_slice, (2 * compressed_slice - 15)[P]), where [P] is the point corresponding to precompute_pc and compressed_slice∈{0, ..., 15}. | |
| template<typename Accumulator , size_t lookup_index, typename AllEntities , typename Parameters > | |
| static Accumulator | compute_lookup_term (const AllEntities &in, const Parameters ¶ms) |
| template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > | |
| static void | accumulate (ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor) |
| Expression for ECCVM lookup tables. | |
Static Public Attributes | |
| static constexpr size_t | NUM_LOOKUP_TERMS = 4 |
| static constexpr size_t | NUM_TABLE_TERMS = 2 |
| static constexpr size_t | LENGTH = NUM_LOOKUP_TERMS + NUM_TABLE_TERMS + 3 |
| static constexpr std::array< size_t, 2 > | SUBRELATION_PARTIAL_LENGTHS |
| static constexpr std::array< bool, 2 > | SUBRELATION_LINEARLY_INDEPENDENT = { true, false } |
Definition at line 17 of file ecc_lookup_relation.hpp.
| using bb::ECCVMLookupRelationImpl< FF_ >::FF = FF_ |
Definition at line 19 of file ecc_lookup_relation.hpp.
| enum bb::ECCVMLookupRelationImpl::SubrelationIndex : size_t |
| Enumerator | |
|---|---|
| GRAND_PRODUCT | |
| LEFT_SHIFTABLE | |
| NUM_SUBRELATIONS | |
Definition at line 26 of file ecc_lookup_relation.hpp.
|
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 }
| accumulator | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Accumulator edges. |
| relation_params | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional 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 }
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Accumulator edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
Definition at line 30 of file ecc_lookup_relation_impl.hpp.
|
inlinestatic |
Definition at line 56 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Definition at line 180 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Returns the fingerprint of (precompute_pc, compressed_slice, (2 * compressed_slice - 15)[P]), where [P] is the point corresponding to precompute_pc and compressed_slice∈{0, ..., 15}.
Definition at line 118 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Get the inverse lookup polynomial.
| AllEntities |
| in |
Definition at line 53 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Definition at line 80 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Definition at line 101 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Definition at line 66 of file ecc_lookup_relation.hpp.
|
inlinestatic |
Definition at line 40 of file ecc_lookup_relation.hpp.
|
staticconstexpr |
Definition at line 23 of file ecc_lookup_relation.hpp.
|
staticconstexpr |
Definition at line 20 of file ecc_lookup_relation.hpp.
|
staticconstexpr |
Definition at line 21 of file ecc_lookup_relation.hpp.
|
staticconstexpr |
Definition at line 38 of file ecc_lookup_relation.hpp.
|
staticconstexpr |
Definition at line 32 of file ecc_lookup_relation.hpp.