Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar > Class Template Reference

The class parametrizing BigGroup fuzzing instructions, execution, etc. More...

#include <biggroup.fuzzer.hpp>

Classes

class  ArgSizes
 
class  ExecutionHandler
 This class implements the execution of biggroup with an oracle to detect discrepancies. More...
 
class  Instruction
 
class  InstructionWeights
 Optional subclass that governs limits on the use of certain instructions, since some of them can be too slow. More...
 
class  Parser
 Parser class handles the parsing and writing the instructions back to data buffer. More...
 

Public Types

typedef std::vector< ExecutionHandlerExecutionState
 

Static Public Member Functions

static bool postProcess (Builder *builder, std::vector< BigGroupBase::ExecutionHandler > &stack)
 Check that the resulting values are equal to expected.
 

Private Types

using bool_t = typename bb::stdlib::bool_t< Builder >
 
using field_t = typename bb::stdlib::field_t< Builder >
 
using witness_t = typename bb::stdlib::witness_t< Builder >
 
using Curve = BigGroupType
 
using GroupElement = typename Curve::ElementNative
 
using AffineElement = typename Curve::AffineElementNative
 
using ScalarField = typename Curve::ScalarFieldNative
 
using BaseField = typename Curve::BaseFieldNative
 
using big_scalar_t = std::conditional_t< _use_bigfield, BigfieldScalar, typename Curve::ScalarField >
 
using biggroup_t = std::conditional_t< _use_bigfield, bb::stdlib::element< Builder, typename Curve::BaseField, BigfieldScalar, typename Curve::GroupNative >, typename Curve::Group >
 

Static Private Member Functions

static biggroup_t make_constant_biggroup (const AffineElement &native_elem)
 Create a constant (no-witness) biggroup element from a native affine element.
 

Detailed Description

template<typename Builder, typename BigGroupType, bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
class BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >

The class parametrizing BigGroup fuzzing instructions, execution, etc.

Definition at line 206 of file biggroup.fuzzer.hpp.

Member Typedef Documentation

◆ AffineElement

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::AffineElement = typename Curve::AffineElementNative
private

Definition at line 215 of file biggroup.fuzzer.hpp.

◆ BaseField

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::BaseField = typename Curve::BaseFieldNative
private

Definition at line 217 of file biggroup.fuzzer.hpp.

◆ big_scalar_t

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::big_scalar_t = std::conditional_t<_use_bigfield, BigfieldScalar, typename Curve::ScalarField>
private

Definition at line 219 of file biggroup.fuzzer.hpp.

◆ biggroup_t

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::biggroup_t = std::conditional_t< _use_bigfield, bb::stdlib::element<Builder, typename Curve::BaseField, BigfieldScalar, typename Curve::GroupNative>, typename Curve::Group>
private

Definition at line 220 of file biggroup.fuzzer.hpp.

◆ bool_t

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::bool_t = typename bb::stdlib::bool_t<Builder>
private

Definition at line 208 of file biggroup.fuzzer.hpp.

◆ Curve

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::Curve = BigGroupType
private

Definition at line 212 of file biggroup.fuzzer.hpp.

◆ ExecutionState

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
typedef std::vector<ExecutionHandler> BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ExecutionState

For biggroup execution state is just a vector of ExecutionHandler objects

Definition at line 1721 of file biggroup.fuzzer.hpp.

◆ field_t

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::field_t = typename bb::stdlib::field_t<Builder>
private

Definition at line 209 of file biggroup.fuzzer.hpp.

◆ GroupElement

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::GroupElement = typename Curve::ElementNative
private

Definition at line 214 of file biggroup.fuzzer.hpp.

◆ ScalarField

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ScalarField = typename Curve::ScalarFieldNative
private

Definition at line 216 of file biggroup.fuzzer.hpp.

◆ witness_t

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
using BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::witness_t = typename bb::stdlib::witness_t<Builder>
private

Definition at line 210 of file biggroup.fuzzer.hpp.

Member Function Documentation

◆ make_constant_biggroup()

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
static biggroup_t BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::make_constant_biggroup ( const AffineElement native_elem)
inlinestaticprivate

Create a constant (no-witness) biggroup element from a native affine element.

Replaces the removed element(const NativeGroup::affine_element&) constructor

Definition at line 229 of file biggroup.fuzzer.hpp.

◆ postProcess()

template<typename Builder , typename BigGroupType , bool _use_bigfield = false, typename BigfieldScalar = typename BigGroupType::ScalarField>
static bool BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::postProcess ( Builder builder,
std::vector< BigGroupBase< Builder, BigGroupType, _use_bigfield, BigfieldScalar >::ExecutionHandler > &  stack 
)
inlinestatic

Check that the resulting values are equal to expected.

Template Parameters
Builder
Parameters
builder
stack
Returns
true
false

Definition at line 1732 of file biggroup.fuzzer.hpp.


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