Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
permutation_lib.hpp File Reference

Contains various functions that help construct Honk Sigma and Id polynomials. More...

#include "barretenberg/common/ref_span.hpp"
#include "barretenberg/common/ref_vector.hpp"
#include "barretenberg/ecc/curves/bn254/fr.hpp"
#include "barretenberg/flavor/flavor.hpp"
#include "barretenberg/polynomials/polynomial.hpp"
#include "barretenberg/polynomials/iterate_over_domain.hpp"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <initializer_list>
#include <string>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  bb::cycle_node
 cycle_node represents the idx of a value of the circuit. It will belong to a CyclicPermutation, such that all nodes in a CyclicPermutation must have the value. The total number of constraints is always <2^32 since that is the type used to represent variables, so we can save space by using a type smaller than size_t. More...
 
struct  bb::permutation_subgroup_element
 Permutations subgroup element structure is used to hold data necessary to construct permutation polynomials. More...
 
struct  bb::Mapping
 Stores permutation mapping data for a single wire column. More...
 
struct  bb::PermutationMapping< NUM_WIRES, generalized >
 

Namespaces

namespace  bb
 Entry point for Barretenberg command-line interface.
 

Typedefs

using bb::CyclicPermutation = std::vector< cycle_node >
 

Functions

template<typename Flavor >
void bb::compute_permutation_argument_polynomials (const typename Flavor::CircuitBuilder &circuit, typename Flavor::ProverPolynomials &polynomials, const std::vector< CyclicPermutation > &copy_cycles, ActiveRegionData &active_region_data)
 Compute Honk style generalized permutation sigmas and ids and add to prover_instance, where the copy_cycles are pre-computed sets of wire addresses whose values should be copy constrained.
 

Detailed Description

Contains various functions that help construct Honk Sigma and Id polynomials.

It is structured to reuse similar components in Honk

Definition in file permutation_lib.hpp.