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

ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks. More...

#include <ecc_bools_relation.hpp>

Public Types

enum  SubrelationIndex : size_t {
  BOOL_Q_EQ = 0 , BOOL_Q_ADD = 1 , BOOL_Q_MUL = 2 , BOOL_Q_RESET_ACCUMULATOR = 3 ,
  BOOL_MSM_TRANSITION = 4 , BOOL_ACCUMULATOR_NOT_EMPTY = 5 , BOOL_Z1_ZERO = 6 , BOOL_Z2_ZERO = 7 ,
  BOOL_ADD_X_EQUAL = 8 , BOOL_ADD_Y_EQUAL = 9 , BOOL_BASE_INFINITY = 10 , BOOL_MSM_INFINITY = 11 ,
  BOOL_MSM_COUNT_ZERO_AT_TRANSITION = 12 , BOOL_MSM_TRANSITION_MSM = 13 , BOOL_PRECOMPUTE_POINT_TRANSITION = 14 , BOOL_MSM_ADD = 15 ,
  BOOL_MSM_DOUBLE = 16 , BOOL_MSM_SKEW = 17 , BOOL_PRECOMPUTE_SELECT = 18 , BOOL_MSM_ADD1 = 19 ,
  BOOL_MSM_ADD2 = 20 , BOOL_MSM_ADD3 = 21 , BOOL_MSM_ADD4 = 22 , NUM_SUBRELATIONS
}
 
using FF = FF_
 

Static Public Member Functions

template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &, const FF &scaling_factor)
 ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.
 

Static Public Attributes

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

Detailed Description

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

ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.

There are a lot of columns in ECCVM that are boolean. As these are all low-degree we place them in a separate relation class

Template Parameters
FF

Definition at line 22 of file ecc_bools_relation.hpp.

Member Typedef Documentation

◆ FF

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

Definition at line 24 of file ecc_bools_relation.hpp.

Member Enumeration Documentation

◆ SubrelationIndex

template<typename FF_ >
enum bb::ECCVMBoolsRelationImpl::SubrelationIndex : size_t
Enumerator
BOOL_Q_EQ 
BOOL_Q_ADD 
BOOL_Q_MUL 
BOOL_Q_RESET_ACCUMULATOR 
BOOL_MSM_TRANSITION 
BOOL_ACCUMULATOR_NOT_EMPTY 
BOOL_Z1_ZERO 
BOOL_Z2_ZERO 
BOOL_ADD_X_EQUAL 
BOOL_ADD_Y_EQUAL 
BOOL_BASE_INFINITY 
BOOL_MSM_INFINITY 
BOOL_MSM_COUNT_ZERO_AT_TRANSITION 
BOOL_MSM_TRANSITION_MSM 
BOOL_PRECOMPUTE_POINT_TRANSITION 
BOOL_MSM_ADD 
BOOL_MSM_DOUBLE 
BOOL_MSM_SKEW 
BOOL_PRECOMPUTE_SELECT 
BOOL_MSM_ADD1 
BOOL_MSM_ADD2 
BOOL_MSM_ADD3 
BOOL_MSM_ADD4 
NUM_SUBRELATIONS 

Definition at line 28 of file ecc_bools_relation.hpp.

Member Function Documentation

◆ accumulate()

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

ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.

There are a lot of columns in ECCVM that are boolean. As these are all low-degree we place them in a separate relation class

Template Parameters
FF
ContainerOverSubrelations
AllEntities
Parameters

Definition at line 27 of file ecc_bools_relation_impl.hpp.

Member Data Documentation

◆ SUBRELATION_PARTIAL_LENGTHS

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

Definition at line 55 of file ecc_bools_relation.hpp.


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