Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
FieldBase< Builder >::Instruction Class Reference

A class representing a single fuzzing instruction. More...

#include <field.fuzzer.hpp>

Classes

union  ArgumentContents
 
struct  FiveArgs
 
struct  FourArgs
 
struct  MultAddArgs
 
struct  MultOpArgs
 
struct  SingleArg
 
struct  SliceArgs
 
struct  ThreeArgs
 
struct  TwoArgs
 

Public Types

enum  OPCODE {
  CONSTANT , WITNESS , CONSTANT_WITNESS , ADD ,
  SUBTRACT , MULTIPLY , DIVIDE , ADD_TWO ,
  MADD , SQR , ASSERT_EQUAL , ASSERT_NOT_EQUAL ,
  ASSERT_ZERO , ASSERT_NOT_ZERO , RANDOMSEED , COND_NEGATE ,
  COND_SELECT , SELECT_IF_ZERO , SELECT_IF_EQ , SET ,
  INVERT , _LAST
}
 
typedef bb::fr Element
 

Static Public Member Functions

template<typename T >
requires SimpleRng<T>
static Instruction generateRandom (T &rng)
 Generate a random instruction.
 
template<typename T >
requires SimpleRng<T>
static bb::fr mutateFieldElement (bb::fr e, T &rng, HavocSettings &havoc_config)
 Mutate the value of a field element.
 
template<typename T >
requires SimpleRng<T>
static Instruction mutateInstruction (Instruction instruction, T &rng, HavocSettings &havoc_config)
 Mutate a single instruction.
 

Public Attributes

OPCODE id
 
ArgumentContents arguments
 

Detailed Description

template<typename Builder>
class FieldBase< Builder >::Instruction

A class representing a single fuzzing instruction.

Definition at line 128 of file field.fuzzer.hpp.

Member Typedef Documentation

◆ Element

template<typename Builder >
typedef bb::fr FieldBase< Builder >::Instruction::Element

Definition at line 157 of file field.fuzzer.hpp.

Member Enumeration Documentation

◆ OPCODE

template<typename Builder >
enum FieldBase::Instruction::OPCODE
Enumerator
CONSTANT 
WITNESS 
CONSTANT_WITNESS 
ADD 
SUBTRACT 
MULTIPLY 
DIVIDE 
ADD_TWO 
MADD 
SQR 
ASSERT_EQUAL 
ASSERT_NOT_EQUAL 
ASSERT_ZERO 
ASSERT_NOT_ZERO 
RANDOMSEED 
COND_NEGATE 
COND_SELECT 
SELECT_IF_ZERO 
SELECT_IF_EQ 
SET 
INVERT 
_LAST 

Definition at line 130 of file field.fuzzer.hpp.

Member Function Documentation

◆ generateRandom()

template<typename Builder >
template<typename T >
requires SimpleRng<T>
static Instruction FieldBase< Builder >::Instruction::generateRandom ( T &  rng)
inlinestatic

Generate a random instruction.

Template Parameters
TPRNG class type
Parameters
rngPRNG used
Returns
A random instruction

Definition at line 225 of file field.fuzzer.hpp.

◆ mutateFieldElement()

template<typename Builder >
template<typename T >
requires SimpleRng<T>
static bb::fr FieldBase< Builder >::Instruction::mutateFieldElement ( bb::fr  e,
T &  rng,
HavocSettings havoc_config 
)
inlinestatic

Mutate the value of a field element.

Template Parameters
TPRNG class
Parameters
eInitial element value
rngPRNG
havoc_configMutation configuration
Returns
Mutated element

Definition at line 312 of file field.fuzzer.hpp.

◆ mutateInstruction()

template<typename Builder >
template<typename T >
requires SimpleRng<T>
static Instruction FieldBase< Builder >::Instruction::mutateInstruction ( Instruction  instruction,
T &  rng,
HavocSettings havoc_config 
)
inlinestatic

Mutate a single instruction.

Template Parameters
TPRNG class
Parameters
instructionThe instruction
rngPRNG
havoc_configMutation configuration
Returns
Mutated instruction

Definition at line 410 of file field.fuzzer.hpp.

Member Data Documentation

◆ arguments

template<typename Builder >
ArgumentContents FieldBase< Builder >::Instruction::arguments

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

◆ id

template<typename Builder >
OPCODE FieldBase< Builder >::Instruction::id

Definition at line 213 of file field.fuzzer.hpp.


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