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

#include <translator_decomposition_relation.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 &, const FF &scaling_factor)
 Expression for decomposition of various values into smaller limbs or microlimbs.
 

Static Public Attributes

static constexpr size_t RELATION_LENGTH
 
static constexpr std::array< size_t, 48 > SUBRELATION_PARTIAL_LENGTHS
 

Detailed Description

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

Definition at line 13 of file translator_decomposition_relation.hpp.

Member Typedef Documentation

◆ FF

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

Definition at line 15 of file translator_decomposition_relation.hpp.

Member Function Documentation

◆ accumulate()

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

Expression for decomposition of various values into smaller limbs or microlimbs.

This relation enforces three types of subrelations: 1) A subrelation decomposing a value from the transcript (for example, z1) into 68-bit limbs. These relations will have the structure lagrange_even_in_minicircuit⋅(a - a_low - a_high⋅2⁶⁸) 2) A subrelation decomposing a value of one of the limbs used in bigfield computation (for example, the lower wide relation limb) into 14-bit limbs. These relations will have the structure lagrange_even_in_minicircuit⋅(a - a_0 - a_1⋅2¹⁴ - ....) 3) A subrelation making a microlimb range constraint more constraining. For example, we want to constrain some values to 12 bits instead of 14. So we add a constraint lagrange_even_in_minicircuit⋅(a_highest⋅4 - a_tail). In a separate relation both a_highest and a_tail are constrained to be 14 bits, but this relation changes the constraint on a_highest to be 12 bits.

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 32 of file translator_decomposition_relation_impl.hpp.

◆ skip()

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

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

Definition at line 75 of file translator_decomposition_relation.hpp.

Member Data Documentation

◆ RELATION_LENGTH

template<typename FF_ >
constexpr size_t bb::TranslatorDecompositionRelationImpl< FF_ >::RELATION_LENGTH
staticconstexpr
Initial value:
=
3

Definition at line 18 of file translator_decomposition_relation.hpp.

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 48> bb::TranslatorDecompositionRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS
staticconstexpr

Definition at line 20 of file translator_decomposition_relation.hpp.


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