Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pairing.bench.cpp
Go to the documentation of this file.
1#include "pairing.hpp"
2#include <benchmark/benchmark.h>
3
4#include <array>
5
6using namespace benchmark;
7using namespace bb;
8
9namespace {
10
12{
14 for (size_t i = 0; i < points.size(); ++i) {
15 points[i] = g1::affine_one * fr(static_cast<uint64_t>(i + 1));
16 }
17 return points;
18}
19
21{
23 for (size_t i = 0; i < points.size(); ++i) {
24 points[i] = g2::affine_one * fr(static_cast<uint64_t>(i + 1));
25 }
26 return points;
27}
28
29void pairing_single(State& state) noexcept
30{
31 static const g1::affine_element p = g1::affine_one * fr(5);
32 static const g2::affine_element q = g2::affine_one * fr(7);
33
34 for (auto _ : state) {
35 auto result = pairing::reduced_ate_pairing(p, q);
36 DoNotOptimize(result);
37 }
38}
39
40void pairing_batch(State& state) noexcept
41{
42 const auto num_pairs = static_cast<size_t>(state.range(0));
43 static const auto p_points = get_g1_points();
44 static const auto q_points = get_g2_points();
45
46 for (auto _ : state) {
47 auto result = pairing::reduced_ate_pairing_batch(p_points.data(), q_points.data(), num_pairs);
48 DoNotOptimize(result);
49 }
50}
51
52} // namespace
53
54BENCHMARK(pairing_single)->Unit(kMicrosecond);
55BENCHMARK(pairing_batch)->Arg(2)->Arg(4)->Arg(8)->Unit(kMicrosecond);
56
static constexpr affine_element affine_one
Definition group.hpp:48
AffineElement const size_t num_pairs
constexpr fq12 reduced_ate_pairing(const g1::affine_element &P_affine, const g2::affine_element &Q_affine)
fq12 reduced_ate_pairing_batch(const g1::affine_element *P_affines, const g2::affine_element *Q_affines, const size_t num_points)
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
field< Bn254FrParams > fr
Definition fr.hpp:155
BENCHMARK(bench_commit_structured_random_poly< curve::BN254 >) -> Unit(benchmark::kMillisecond)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
BENCHMARK_MAIN()