|
template<class Operation > |
static void | apply_to_tuple_of_tuples (auto &tuple, Operation &&operation) |
| General purpose method for applying an operation to a tuple of tuples of Univariates.
|
|
static void | zero_univariates (auto &tuple) |
| Set all coefficients of Univariates to zero.
|
|
static void | scale_univariates (auto &tuple, const SubrelationSeparators &subrelation_separators) |
| Scale Univariates, each representing a subrelation, by different challenges.
|
|
template<typename Tuple > |
static constexpr void | add_tuples (Tuple &tuple_1, const Tuple &tuple_2) |
| Componentwise addition of two tuples.
|
|
template<typename Tuple > |
static constexpr void | add_nested_tuples (Tuple &tuple_1, const Tuple &tuple_2) |
| Componentwise addition of nested tuples (tuples of tuples)
|
|
template<typename Parameters > |
static void | accumulate_relation_evaluations_without_skipping (const PolynomialEvaluations &evaluations, RelationEvaluations &relation_evaluations, const Parameters &relation_parameters, const FF &partial_evaluation_result) |
| Calculate the contribution of each relation to the expected value of the full Honk relation.
|
|
template<typename Parameters > |
static RelationEvaluations | accumulate_relation_evaluations (const PolynomialEvaluations &evaluations, const Parameters &relation_parameters, const FF &partial_evaluation_result) |
| Calculate the contribution of each relation to the expected value of the full Honk relation.
|
|
template<typename Parameters , size_t relation_idx, bool consider_skipping = true> |
static void | accumulate_single_relation (const PolynomialEvaluations &evaluations, RelationEvaluations &relation_evaluations, const Parameters &relation_parameters, const FF &partial_evaluation_result) |
|
static void | zero_elements (auto &tuple) |
| Set each element in a tuple of arrays to zero.
|
|
static FF | scale_and_batch_elements (auto &tuple, const SubrelationSeparators &subrelation_separators) |
| Scale elements, representing evaluations of subrelations, by separate challenges then sum them.
|
|
template<typename Operation > |
static void | apply_to_tuple_of_arrays (Operation &&operation, auto &tuple) |
| General purpose method for applying a tuple of arrays (of FFs)
|
|
template<typename Operation , typename tuple_type > |
static void | apply_to_tuple_of_arrays_elements (Operation &&operation, const tuple_type &tuple) |
| Recursive template function to apply a specific operation on each element of several arrays in a tuple.
|
|
template<typename
Flavor>
class bb::RelationUtils< Flavor >
Definition at line 22 of file utils.hpp.
template<typename Parameters >
Calculate the contribution of each relation to the expected value of the full Honk relation.
For each relation, use the purported values (supplied by the prover) of the multivariates to calculate a contribution to the purported value of the full Honk relation. These are stored in evaluations
. Adding these together, with appropriate scaling factors, produces the expected value of the full Honk relation. This value is checked against the final value of the target total sum (called sigma_0 in the thesis).
Definition at line 155 of file utils.hpp.
template<typename Parameters >
Calculate the contribution of each relation to the expected value of the full Honk relation.
For each relation, use the purported values (supplied by the prover) of the multivariates to calculate a contribution to the purported value of the full Honk relation. These are stored in evaluations
. Adding these together, with appropriate scaling factors, produces the expected value of the full Honk relation. This value is checked against the final value of the target total sum (called sigma_0 in the thesis).
Definition at line 133 of file utils.hpp.
template<typename Tuple >
Componentwise addition of nested tuples (tuples of tuples)
Used for summing tuples of tuples of Univariates. Needed for Sumcheck multithreading. Each thread accumulates relation contributions across a portion of the hypecube and then the results are accumulated into a single nested tuple.
- Template Parameters
-
Tuple | |
Index | Index into outer tuple |
- Parameters
-
tuple_1 | First nested tuple summand. Result stored here |
tuple_2 | Second summand |
Definition at line 117 of file utils.hpp.
template<typename Operation , typename tuple_type >
static void bb::RelationUtils< Flavor >::apply_to_tuple_of_arrays_elements |
( |
Operation && |
operation, |
|
|
const tuple_type & |
tuple |
|
) |
| |
|
inlinestatic |
Recursive template function to apply a specific operation on each element of several arrays in a tuple.
We need this method in addition to the apply_to_tuple_of_arrays when we aim to perform different operations depending on the array element. More explicitly, in our codebase this method is used when the elements of array are values of subrelations and we want to accumulate some of these values separately (the linearly dependent contribution when we compute the evaluation of full rel_U(G)H at particular row.)
Definition at line 259 of file utils.hpp.