Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::TranslatorAccumulatorTransferRelationImpl< FF_ > Class Template Reference

#include <translator_extra_relations.hpp>

Public Types

using FF = FF_
 

Static Public Member Functions

template<typename AllEntities >
static bool skip (const AllEntities &in)
 Returns true if the contribution from all subrelations for the provided inputs is identically zero.
 
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
 Relation enforcing non-arithmetic transitions of accumulator (value that is tracking the batched evaluation of polynomials in non-native field)
 

Static Public Attributes

static constexpr size_t RELATION_LENGTH = 4
 
static constexpr std::array< size_t, 12 > SUBRELATION_PARTIAL_LENGTHS
 

Detailed Description

template<typename FF_>
class bb::TranslatorAccumulatorTransferRelationImpl< FF_ >

Definition at line 45 of file translator_extra_relations.hpp.

Member Typedef Documentation

◆ FF

template<typename FF_ >
using bb::TranslatorAccumulatorTransferRelationImpl< FF_ >::FF = FF_

Definition at line 47 of file translator_extra_relations.hpp.

Member Function Documentation

◆ accumulate()

template<typename FF >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
void bb::TranslatorAccumulatorTransferRelationImpl< FF >::accumulate ( ContainerOverSubrelations &  accumulators,
const AllEntities &  in,
const Parameters &  params,
const FF scaling_factor 
)
static

Relation enforcing non-arithmetic transitions of accumulator (value that is tracking the batched evaluation of polynomials in non-native field)

This relation enforces three pieces of logic: 1) Accumulator starts as zero before we start accumulating stuff 2) Accumulator limbs stay the same if accumulation is not occurring (at odd indices) 3) Accumulator limbs result in the values specified by relation parameters after accumulation

Parameters
evalstransformed to evals + C(in(X)...)*scaling_factor
inan std::array containing the fully extended Univariate edges.
parameterscontains beta, gamma, and public_input_delta, ....
scaling_factoroptional term to scale the evaluation before adding to evals.

This relation enforces three pieces of logic: 1) Accumulator starts as zero before we start accumulating stuff 2) Accumulator limbs stay the same if accumulation is not occurring (at even indices) 3) Accumulator limbs result in the values specified by relation parameters after accumulation

Parameters
evalstransformed to evals + C(in(X)...)*scaling_factor
inan std::array containing the fully extended Univariate edges.
parameterscontains beta, gamma, and public_input_delta, ....
scaling_factoroptional term to scale the evaluation before adding to evals.

Definition at line 65 of file translator_extra_relations_impl.hpp.

◆ skip()

template<typename FF_ >
template<typename AllEntities >
static bool bb::TranslatorAccumulatorTransferRelationImpl< FF_ >::skip ( const AllEntities &  in)
inlinestatic

Returns true if the contribution from all subrelations for the provided inputs is identically zero.

This has a negligible chance of failing in sumcheck (not in the first round) because effectively transfrom original coefficients into a random linear combination. But checking each individually is noticeably slower.

Definition at line 75 of file translator_extra_relations.hpp.

Member Data Documentation

◆ RELATION_LENGTH

template<typename FF_ >
constexpr size_t bb::TranslatorAccumulatorTransferRelationImpl< FF_ >::RELATION_LENGTH = 4
staticconstexpr

Definition at line 50 of file translator_extra_relations.hpp.

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 12> bb::TranslatorAccumulatorTransferRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS
staticconstexpr
Initial value:
{
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4
}

Definition at line 51 of file translator_extra_relations.hpp.


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