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

#include <ecc_op_queue_relation.hpp>

Public Types

using FF = FF_
 

Static Public Member Functions

template<typename AllEntities >
static bool skip (const AllEntities &in)
 
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &, const FF &scaling_factor)
 Expression for the generalized permutation sort gate.
 

Static Public Attributes

static constexpr std::array< size_t, 8 > SUBRELATION_PARTIAL_LENGTHS
 

Detailed Description

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

Definition at line 12 of file ecc_op_queue_relation.hpp.

Member Typedef Documentation

◆ FF

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

Definition at line 14 of file ecc_op_queue_relation.hpp.

Member Function Documentation

◆ accumulate()

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

Expression for the generalized permutation sort gate.

The relation is defined as C(in(X)...) = \alpha_{base} * ( \Sum_{i=0}^3 \alpha^i * (w_i_shift - w_{op,i}) * \chi_{ecc_op} + \Sum_{i=0}^3 \alpha^{i+4} w_{op,i} * \bar{\chi}_{ecc_op} )

where w_{op,i} are the ecc op gate wires, \chi_{ecc_op} is the indicator for the portion of the domain representing ecc op gates and \bar{\chi} is the indicator on the complementary domain.

The first four sub-relations check that the values in the conventional wires are identical to the values in the ecc op wires over the portion of the execution trace representing ECC op queue gates. The next four check that the op wire polynomials are identically zero everywhere else.

Note
This relation utilizes the shifted wires so that the ecc op wires can store the data begining at index 0, unlike the wires which contain an initial zero row to facilitate the left-shift-by-1 needed by other relations.
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 55 of file ecc_op_queue_relation.hpp.

◆ skip()

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

Definition at line 27 of file ecc_op_queue_relation.hpp.

Member Data Documentation

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 8> bb::EccOpQueueRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS
staticconstexpr
Initial value:
{
3,
3,
3,
3,
3,
3,
3,
3
}

Definition at line 16 of file ecc_op_queue_relation.hpp.


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