1#include <benchmark/benchmark.h>
8using namespace benchmark;
22 auto log2_num_gates =
static_cast<size_t>(state.range(0));
24 const auto construct_key = [&]() {
41 ProtogalaxyProver folding_prover({ decider_pk_1, decider_pk_2 }, { decider_vk_1, decider_vk_2 }, transcript);
44 folding_prover.accumulator = decider_pk_1;
45 folding_prover.deltas.resize(log2_num_gates);
46 std::fill_n(folding_prover.deltas.begin(), log2_num_gates, 0);
47 folding_prover.perturbator = Flavor::Polynomial::random(1 << log2_num_gates);
48 folding_prover.transcript = Flavor::Transcript::prover_init_empty();
49 folding_prover.run_oink_prover_on_each_incomplete_key();
51 for (
auto _ : state) {
66 prover.combiner_quotient_round(prover.accumulator->gate_challenges, prover.deltas, prover.keys_to_fold);
69 prover.update_target_sum_and_fold(prover.keys_to_fold,
70 prover.combiner_quotient,
72 prover.relation_parameters,
73 prover.perturbator_evaluation);
A DeciderProvingKey is normally constructed from a finalized circuit and it contains all the informat...
The DeciderVerificationKey encapsulates all the necessary information for a Mega Honk Verifier to ver...
MegaCircuitBuilder CircuitBuilder
static void construct_arithmetic_circuit(Builder &builder, const size_t target_log2_dyadic_size=4, bool include_public_inputs=true)
Populate a builder with a specified number of arithmetic gates; includes a PI.
Unit(benchmark::kMillisecond) -> RangeMultiplier(2) ->Range(2, MAX_BATCH_SIZE) ->Iterations(1000)
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
void _bench_round(::benchmark::State &state, void(*F)(ProtogalaxyProver_< Flavor > &))
BENCHMARK_CAPTURE(bench_round_mega, oink, [](auto &prover) { prover.run_oink_prover_on_each_incomplete_key();}) -> DenseRange(14, 20) -> Unit(kMillisecond)
DenseRange(MIN_LOG_NUM_GRUMPKIN_POINTS, MAX_LOG_NUM_GRUMPKIN_POINTS) -> Unit(benchmark::kMillisecond)
void bench_round_mega(::benchmark::State &state, void(*F)(ProtogalaxyProver_< MegaFlavor > &))
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept