|
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 We turn it on if either of the permutation contribution selectors are active.
|
|
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.
|
|
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::GenericPermutationRelationImpl< Settings, FF_ >
Definition at line 40 of file generic_permutation_relation.hpp.
template<typename Settings , typename FF_ >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void bb::GenericPermutationRelationImpl< 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 213 of file generic_permutation_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 | Kept for compatibility with lookups, behavior doesn't change |
- Parameters
-
params | Used for beta and gamma |
Definition at line 155 of file generic_permutation_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 186 of file generic_permutation_relation.hpp.
template<typename Settings , typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities >
Compute if the value from the second set exists in this row.
- Template Parameters
-
write_index | Kept for compatibility with lookups, behavior doesn't change |
Definition at line 133 of file generic_permutation_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 62 of file generic_permutation_relation.hpp.