7#include <benchmark/benchmark.h>
20using namespace benchmark;
35class PippengerBench :
public benchmark::Fixture {
38 static constexpr size_t MAX_POINTS = 1 << 22;
40 std::vector<Fr> scalars;
45 void SetUp([[maybe_unused]] const ::benchmark::State& state)
override
48 srs = srs::get_crs_factory<Curve>()->get_crs(MAX_POINTS);
50 scalars.resize(MAX_POINTS);
51 for (
auto& x : scalars) {
60BENCHMARK_DEFINE_F(PippengerBench, Full)(benchmark::State& state)
63 PippengerBench::srs->get_monomial_points().subspan(0,
static_cast<size_t>(state.range(0)));
64 std::span<Fr> span(&PippengerBench::scalars[0],
static_cast<size_t>(state.range(0)));
67 for (
auto _ : state) {
69 (scalar_multiplication::pippenger_unsafe<Curve>(scalars, points));
73#define ARGS RangeMultiplier(4)->Range(1 << 11, 1 << 21);
75BENCHMARK_REGISTER_F(PippengerBench, Full)->Unit(benchmark::kMillisecond)->ARGS;
typename Group::element Element
typename Group::affine_element AffineElement
RNG & get_debug_randomness(bool reset, std::uint_fast64_t seed)
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
#define BB_REPORT_OP_COUNT_IN_BENCH(state)
static field random_element(numeric::RNG *engine=nullptr) noexcept