1#include <benchmark/benchmark.h>
10using namespace benchmark;
19 using RelationEvaluations =
decltype(create_tuple_of_arrays_of_values<typename Flavor::Relations>());
21 for (
auto _ : state) {
34 const size_t dyadic_size = 1 << state.range(0);
35 Polys polys(dyadic_size);
37 auto params = Params::get_random();
39 for (
auto _ : state) {
40 PGInternal pg_internal;
41 auto result = pg_internal.compute_row_evaluations(polys, alphas, params);
42 DoNotOptimize(result);
47void fold(State& state)
noexcept
57 auto log2_num_gates =
static_cast<size_t>(state.range(0));
61 for (
size_t idx : chunk.
range(NUM_INSTANCES)) {
72 for (
size_t idx = 0; idx < NUM_INSTANCES; idx++) {
77 prover_insts[idx] = prover_inst;
78 verifier_insts[idx] = verifier_inst;
84 ProtogalaxyProver folding_prover(prover_insts, verifier_insts, transcript);
86 for (
auto _ : state) {
88 auto proof = folding_prover.prove();
A container for the prover polynomials handles.
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
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.
A purely static class (never add state to this!) consisting of functions used by the Protogalaxy prov...
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
#define GOOGLE_BB_BENCH_REPORTER(state)
crypto::Poseidon2Bn254ScalarFieldParams Params
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
DenseRange(MIN_LOG_NUM_GRUMPKIN_POINTS, MAX_LOG_NUM_GRUMPKIN_POINTS) -> Unit(benchmark::kMillisecond)
void compute_row_evaluations(State &state) noexcept
void vector_of_evaluations(State &state) noexcept
BENCHMARK(vector_of_evaluations) -> DenseRange(15, 21) ->Unit(kMillisecond) ->Iterations(1)
void fold(State &state) noexcept
void parallel_for(size_t num_iterations, const std::function< void(size_t)> &func)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Container for parameters used by the grand product (permutation, lookup) Honk relations.
auto range(size_t size, size_t offset=0) const