Specifies positions of elements in the tuple of entities received from methods in the Settings class.
More...
|
static constexpr size_t | compute_maximum_read_term_degree () |
| Compute the maximum degree of read terms.
|
|
static constexpr size_t | compute_maximum_write_term_degree () |
| Compute the maximum degree of write terms.
|
|
static constexpr size_t | compute_read_term_product_degree () |
| Compute the degree of of the product of read terms.
|
|
static constexpr size_t | compute_write_term_product_degree () |
| Compute the degree of of the product of write terms.
|
|
template<typename AllValues > |
static bool | operation_exists_at_row (const AllValues &row) |
| Check if we need to compute the inverse polynomial element value for this row.
|
|
template<typename AllEntities > |
static auto & | get_inverse_polynomial (AllEntities &in) |
| Get the inverse permutation polynomial (needed to compute its value)
|
|
template<typename Accumulator , typename AllEntities > |
static Accumulator | compute_inverse_exists (const AllEntities &in) |
| Get selector/wire switching on(1) or off(0) inverse computation.
|
|
template<typename Accumulator , size_t index, typename AllEntities > |
static Accumulator | lookup_read_counts (const AllEntities &in) |
| Returns the number of times a particular value is written (how many times it is being looked up)
|
|
template<typename Accumulator , size_t read_index, typename AllEntities > |
static Accumulator | compute_read_term_predicate (const AllEntities &in) |
| Compute if the value from the first set exists in this row.
|
|
template<typename Accumulator , size_t write_index, typename AllEntities > |
static Accumulator | compute_write_term_predicate (const AllEntities &in) |
| Compute if the value from the second set exists in this row.
|
|
static constexpr size_t | compute_read_term_polynomial_offset (size_t read_index) |
| Compute where the polynomials defining a particular read term are located.
|
|
static constexpr size_t | compute_write_term_polynomial_offset (size_t write_index) |
| Compute where the polynomials defining a particular write term are located.
|
|
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters > |
static Accumulator | compute_read_term (const AllEntities &in, const Parameters ¶ms) |
| Compute the value of a single item in the set.
|
|
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters > |
static Accumulator | compute_write_term (const AllEntities &in, const Parameters ¶ms) |
| Compute the value of a single item in the set.
|
|
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > |
static void | accumulate (ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor) |
| Expression for generic log-derivative-based set permutation.
|
|
template<typename Settings, typename FF_>
class bb::GenericLookupRelationImpl< Settings, FF_ >
Specifies positions of elements in the tuple of entities received from methods in the Settings class.
Definition at line 38 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void bb::GenericLookupRelationImpl< Settings, FF_ >::accumulate |
( |
ContainerOverSubrelations & |
accumulator, |
|
|
const AllEntities & |
in, |
|
|
const Parameters & |
params, |
|
|
const FF & |
scaling_factor |
|
) |
| |
|
inlinestatic |
Expression for generic log-derivative-based set permutation.
- Parameters
-
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. |
Definition at line 464 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters >
Compute the value of a single item in the set.
Computes the polynomial \gamma + \sum_{i=0}^{num_columns}(column_i*\beta^i), so the tuple of columns is in the first set
- Template Parameters
-
read_index | The chosen polynomial relation |
- Parameters
-
params | Used for beta and gamma |
Definition at line 384 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
Compute where the polynomials defining a particular read term are located.
We pass polynomials involved in read an write terms from settings as a tuple of references. However, depending on the type of read term different number of polynomials can be used to compute it. So we need to compute the offset in the tuple iteratively
- Parameters
-
read_index | Index of the read term |
- Returns
- constexpr size_t
Definition at line 317 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters >
Compute the value of a single item in the set.
Computes the polynomial \gamma + \sum_{i=0}^{num_columns}(column_i*\beta^i), so the tuple of columns is in the second set
- Template Parameters
-
write_index | Kept for compatibility with lookups, behavior doesn't change |
- Parameters
-
params | Used for beta and gamma |
Definition at line 430 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
Compute where the polynomials defining a particular write term are located.
We pass polynomials involved in read an write terms from settings as a tuple of references. However, depending on the type of term different number of polynomials can be used to compute it. So we need to compute the offset in the tuple iteratively
- Parameters
-
write_index | Index of the write term |
- Returns
- constexpr size_t
Definition at line 353 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
template<typename Accumulator , size_t index, typename AllEntities >
Returns the number of times a particular value is written (how many times it is being looked up)
Lookup read counts should be independent columns, so there is no need to call a separate function
- Template Parameters
-
Accumulator | |
index | The index of the write predicate to which this count belongs |
AllEntities | |
- Parameters
-
- Returns
- Accumulator
Definition at line 262 of file generic_lookup_relation.hpp.
template<typename Settings , typename FF_ >
We apply the power polynomial only to the first subrelation.
The first subrelation establishes correspondence between the inverse polynomial elements and the terms. The second relation computes the inverses of individual terms, which are then summed up with sumcheck
Definition at line 212 of file generic_lookup_relation.hpp.