barretenberg
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
proof_system::honk::sumcheck::SumcheckProverRound< Flavor > Class Template Reference

Public Types

using FF = typename Flavor::FF
 
using ExtendedEdges = typename Flavor::ExtendedEdges
 

Public Member Functions

 SumcheckProverRound (size_t initial_round_size)
 
template<typename ProverPolynomialsOrPartiallyEvaluatedMultivariates >
void extend_edges (ExtendedEdges &extended_edges, const ProverPolynomialsOrPartiallyEvaluatedMultivariates &multivariates, size_t edge_idx)
 Extend each edge in the edge group at to max-relation-length-many values.
 
template<typename ProverPolynomialsOrPartiallyEvaluatedMultivariates >
barretenberg::Univariate< FF, BATCHED_RELATION_PARTIAL_LENGTH > compute_univariate (ProverPolynomialsOrPartiallyEvaluatedMultivariates &polynomials, const proof_system::RelationParameters< FF > &relation_parameters, const barretenberg::PowUnivariate< FF > &pow_univariate, const FF alpha)
 Return the evaluations of the univariate restriction (S_l(X_l) in the thesis) at num_multivariates-many values. Most likely this will end up being S_l(0), ... , S_l(t-1) where t is around 12. At the end, reset all univariate accumulators to be zero.
 

Static Public Member Functions

template<typename ExtendedUnivariate , typename ContainerOverSubrelations >
static ExtendedUnivariate batch_over_relations (ContainerOverSubrelations &univariate_accumulators, const FF &challenge, const barretenberg::PowUnivariate< FF > &pow_univariate)
 Given a tuple t = (t_0, t_1, ..., t_{NUM_SUBRELATIONS-1}) and a challenge α, return t_0 + αt_1 + ... + α^{NUM_SUBRELATIONS-1}t_{NUM_SUBRELATIONS-1}).
 
template<typename ExtendedUnivariate , typename TupleOfTuplesOfUnivariates >
static void extend_and_batch_univariates (const TupleOfTuplesOfUnivariates &tuple, ExtendedUnivariate &result, const barretenberg::PowUnivariate< FF > &pow_univariate)
 Extend Univariates to specified size then sum them.
 

Public Attributes

size_t round_size
 
SumcheckTupleOfTuplesOfUnivariates univariate_accumulators
 

Static Public Attributes

static constexpr size_t NUM_RELATIONS = Flavor::NUM_RELATIONS
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = Flavor::MAX_PARTIAL_RELATION_LENGTH
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = Flavor::BATCHED_RELATION_PARTIAL_LENGTH
 

Member Function Documentation

◆ extend_and_batch_univariates()

template<typename Flavor >
template<typename ExtendedUnivariate , typename TupleOfTuplesOfUnivariates >
static void proof_system::honk::sumcheck::SumcheckProverRound< Flavor >::extend_and_batch_univariates ( const TupleOfTuplesOfUnivariates &  tuple,
ExtendedUnivariate &  result,
const barretenberg::PowUnivariate< FF > &  pow_univariate 
)
inlinestatic

Extend Univariates to specified size then sum them.

Template Parameters
extended_sizeSize after extension
Parameters
tupleA tuple of tuples of Univariates
resultA Univariate of length extended_size
pow_univariatePower polynomial univariate

◆ extend_edges()

template<typename Flavor >
template<typename ProverPolynomialsOrPartiallyEvaluatedMultivariates >
void proof_system::honk::sumcheck::SumcheckProverRound< Flavor >::extend_edges ( ExtendedEdges &  extended_edges,
const ProverPolynomialsOrPartiallyEvaluatedMultivariates &  multivariates,
size_t  edge_idx 
)
inline

Extend each edge in the edge group at to max-relation-length-many values.

Should only be called externally with relation_idx equal to 0. In practice, multivariates is one of ProverPolynomials or FoldedPolynomials.


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