3#include <fuzzer/FuzzedDataProvider.h>
43 size_t minimum_size = 64;
45 if (size < minimum_size) {
50 FuzzedDataProvider fuzzed_data(
data, size);
55 if (
a.get_tag() !=
b.get_tag()) {
75 }
catch (
const std::exception& e) {
92 if (getenv(
"AVM_DEBUG") !=
nullptr) {
93 info(
"Debugging trace:");
99 check_relation<gt_rel>(
trace);
100 check_relation<ff_gt_rel>(
trace);
101 check_all_interactions<GreaterThanTraceBuilder>(
trace);
102 check_all_interactions<FieldGreaterThanTraceBuilder>(
trace);
FieldGreaterThan field_gt
EventEmitter< simulation::FieldGreaterThanEvent > field_gt_emitter
EventEmitter< simulation::RangeCheckEvent > range_check_emitter
void run(uint32_t starting_row=0)
static TaggedValue from_tag_truncating(ValueTag tag, FF value)
EventEmitter< Event >::Container dump_events()
bool gt(const FF &a, const FF &b) override
Computes whether a > b for field elements, delegating to the ff_gt gadget.
void process(const simulation::EventEmitterInterface< simulation::FieldGreaterThanEvent >::Container &events, TraceContainer &trace)
Processes FieldGreaterThanEvent events and generates trace rows for the ff_gt gadget.
void process(const simulation::EventEmitterInterface< simulation::GreaterThanEvent >::Container &events, TraceContainer &trace)
Process the greater-than events and populate the relevant columns in the trace.
void process(const simulation::EventEmitterInterface< simulation::RangeCheckEvent >::Container &events, TraceContainer &trace)
Processes range check events and populates the trace with decomposed value columns.
RangeCheckTraceBuilder range_check_builder
FieldGreaterThanTraceBuilder field_gt_builder
GreaterThanTraceBuilder gt_builder
const std::vector< MemoryValue > data
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
MemoryValue read_mem_value(FuzzedDataProvider &fdp)
Read a MemoryValue from the fuzzed data provider.
AVM range check gadget for witness generation.