#include <translator_permutation_relation.hpp>
|
| template<typename AllEntities > |
| static bool | skip (const AllEntities &in) |
| | Returns true if the contribution from all subrelations for the provided inputs is identically zero.
|
| |
| static auto & | get_grand_product_polynomial (auto &in) |
| |
| static auto & | get_shifted_grand_product_polynomial (auto &in) |
| |
| template<typename Accumulator , typename AllEntities , typename Parameters > |
| static Accumulator | compute_grand_product_numerator (const AllEntities &in, const Parameters ¶ms) |
| |
| template<typename Accumulator , typename AllEntities , typename Parameters > |
| static Accumulator | compute_grand_product_denominator (const AllEntities &in, const Parameters ¶ms) |
| |
| template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > |
| static void | accumulate (ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor) |
| | Compute contribution of the goblin translator permutation relation for a given edge (internal function)
|
| |
template<typename FF_>
class bb::TranslatorPermutationRelationImpl< FF_ >
Definition at line 12 of file translator_permutation_relation.hpp.
◆ FF
◆ accumulate()
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
Compute contribution of the goblin translator permutation relation for a given edge (internal function)
There are 2 relations associated with enforcing the set permutation relation This file handles the relation that confirms faithful calculation of the grand product polynomial Z_perm.
C(in(X)...) = ( z_perm(X) + lagrange_first(X) )*P(X)
- ( z_perm_shift(X) + lagrange_last(X))*Q(X), where P(X) = Prod_{i=0:3} (concatenated_range_constraint_i(X) + lagrange_masking * β + γ)
- (extra_numerator(X) + lagrange_ordered_masking * β + γ) Q(X) = Prod_{i=0:4} (ordered_range_constraint_i(X) + lagrange_ordered_masking * β + γ) the first 4 numerator polynomials are concatenated range constraint polynomials and the last one is the extra numerator
If operating in zero-knowledge, we use two different masking selectors:
- lagrange_masking marks scattered masking positions (last NUM_MASKED_ROWS_END rows of each of 16 blocks) in concatenated polynomials
- lagrange_ordered_masking marks contiguous masking positions (last NUM_MASKED_ROWS_END positions at circuit end) in ordered polynomials The lagrange_*_masking * β terms ensure that masking positions contribute unique values to the grand product, preventing information leakage about the underlying witness values at those positions.
- Parameters
-
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Univariate edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
There are 2 relations associated with enforcing the set permutation relation This file handles the relation that confirms faithful calculation of the grand product polynomial Z_perm.
C(in(X)...) = ( z_perm(X) + lagrange_first(X) )*P(X)
- ( z_perm_shift(X) + lagrange_last(X))*Q(X), where P(X) = Prod_{i=0:3} (concatenated_range_constraint_i(X) + lagrange_masking * β + γ)
- (extra_numerator(X) + lagrange_ordered_masking * β + γ) Q(X) = Prod_{i=0:4} (ordered_range_constraint_i(X) + lagrange_ordered_masking * β + γ) the first 4 numerator polynomials are concatenated range constraint polynomials and the last one is the extra numerator
If operating in zero-knowledge, we use two different masking selectors:
- lagrange_masking marks scattered masking positions (last NUM_MASKED_ROWS_END rows of each of 16 blocks) in concatenated polynomials
- lagrange_ordered_masking marks contiguous masking positions (last NUM_MASKED_ROWS_END positions at circuit end) in ordered polynomials
- Parameters
-
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Univariate edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
Definition at line 42 of file translator_permutation_relation_impl.hpp.
◆ compute_grand_product_denominator()
template<typename FF_ >
template<typename Accumulator , typename AllEntities , typename Parameters >
◆ compute_grand_product_numerator()
template<typename FF_ >
template<typename Accumulator , typename AllEntities , typename Parameters >
◆ get_grand_product_polynomial()
◆ get_shifted_grand_product_polynomial()
◆ skip()
template<typename FF_ >
template<typename AllEntities >
◆ RELATION_LENGTH
◆ SUBRELATION_PARTIAL_LENGTHS
The documentation for this class was generated from the following files: