barretenberg
Loading...
Searching...
No Matches
Static Public Member Functions | Static Public Attributes | List of all members
proof_system::honk::sumcheck::ExampleSameWirePermutationSettings Class Reference

This class contains an example of how to set PermutationSettings classes used by the GenericPermutationRelationImpl class to specify a concrete permutation. More...

#include <relation_definer.hpp>

Static Public Member Functions

template<typename AllEntities >
static bool inverse_polynomial_is_computed_at_row (const AllEntities &in)
 If this method returns true on a row of values, then the inverse polynomial at this index. Otherwise the value needs to be set to zero.
 
template<typename AllEntities >
static auto get_const_entities (const AllEntities &in)
 Get all the entities for the permutation when we don't need to update them.
 
template<typename AllEntities >
static auto get_nonconst_entities (AllEntities &in)
 Get all the entities for the permutation when need to update them.
 

Static Public Attributes

static constexpr size_t COLUMNS_PER_SET = 1
 

Detailed Description

This class contains an example of how to set PermutationSettings classes used by the GenericPermutationRelationImpl class to specify a concrete permutation.

To create your own permutation: 1) Create a copy of this class and rename it 2) Update all the values with the ones needed for your permutation 3) Update "DECLARE_IMPLEMENTATIONS_FOR_ALL_SETTINGS" and "DEFINE_IMPLEMENTATIONS_FOR_ALL_SETTINGS" to include the new settings 4) Add the relation with the chosen settings to Relations in the flavor (for example," using Relations = std::tuple<sumcheck::GenericPermutationRelation<sumcheck::ExamplePermutationSettings, FF>>;)

Member Function Documentation

◆ get_const_entities()

template<typename AllEntities >
static auto proof_system::honk::sumcheck::ExampleSameWirePermutationSettings::get_const_entities ( const AllEntities &  in)
inlinestatic

Get all the entities for the permutation when we don't need to update them.

The entities are returned as a tuple of references in the following order:

  • The entity/polynomial used to store the product of the inverse values
  • The entity/polynomial that switches on the subrelation of the permutation relation that ensures correctness of the inverse polynomial
  • The entity/polynomial that enables adding a tuple-generated value from the first set to the logderivative sum subrelation
  • The entity/polynomial that enables adding a tuple-generated value from the second set to the logderivative sum subrelation
  • A sequence of COLUMNS_PER_SET entities/polynomials that represent the first set (N.B. ORDER IS IMPORTANT!)
  • A sequence of COLUMNS_PER_SET entities/polynomials that represent the second set (N.B. ORDER IS IMPORTANT!)
Returns
All the entities needed for the permutation

◆ get_nonconst_entities()

template<typename AllEntities >
static auto proof_system::honk::sumcheck::ExampleSameWirePermutationSettings::get_nonconst_entities ( AllEntities &  in)
inlinestatic

Get all the entities for the permutation when need to update them.

The entities are returned as a tuple of references in the following order:

  • The entity/polynomial used to store the product of the inverse values
  • The entity/polynomial that switches on the subrelation of the permutation relation that ensures correctness of the inverse polynomial
  • The entity/polynomial that enables adding a tuple-generated value from the first set to the logderivative sum subrelation
  • The entity/polynomial that enables adding a tuple-generated value from the second set to the logderivative sum subrelation
  • A sequence of COLUMNS_PER_SET entities/polynomials that represent the first set (N.B. ORDER IS IMPORTANT!)
  • A sequence of COLUMNS_PER_SET entities/polynomials that represent the second set (N.B. ORDER IS IMPORTANT!)
Returns
All the entities needed for the permutation

◆ inverse_polynomial_is_computed_at_row()

template<typename AllEntities >
static bool proof_system::honk::sumcheck::ExampleSameWirePermutationSettings::inverse_polynomial_is_computed_at_row ( const AllEntities &  in)
inlinestatic

If this method returns true on a row of values, then the inverse polynomial at this index. Otherwise the value needs to be set to zero.

If this is true then permutation takes place in this row


The documentation for this class was generated from the following file: