2#include <benchmark/benchmark.h>
4using namespace benchmark;
115 __asm__ __volatile__(
"mrs %0, pmccntr_el0" :
"=r"(pmccntr));
120 __asm__ __volatile__(
"rdtsc" :
"=a"(lo),
"=d"(hi));
121 return (
static_cast<uint64_t
>(hi) << 32) | lo;
165 for (
auto _ : state) {
166 uint64_t before =
rdtsc();
168 clocks += (
rdtsc() - before);
171 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
188 for (
auto _ : state) {
189 uint64_t before =
rdtsc();
191 clocks += (
rdtsc() - before);
194 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
211 for (
auto _ : state) {
212 uint64_t before =
rdtsc();
214 clocks += (
rdtsc() - before);
217 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
234 for (
auto _ : state) {
235 uint64_t before =
rdtsc();
237 clocks += (
rdtsc() - before);
240 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
258 for (
auto _ : state) {
259 uint64_t before =
rdtsc();
261 clocks += (
rdtsc() - before);
264 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
282 for (
auto _ : state) {
283 uint64_t before =
rdtsc();
285 clocks += (
rdtsc() - before);
288 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
306 for (
auto _ : state) {
307 uint64_t before =
rdtsc();
309 clocks += (
rdtsc() - before);
312 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
330 for (
auto _ : state) {
331 uint64_t before =
rdtsc();
333 clocks += (
rdtsc() - before);
336 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
356 for (
auto _ : state) {
357 uint64_t before =
rdtsc();
359 clocks += (
rdtsc() - before);
362 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
382 for (
auto _ : state) {
383 uint64_t before =
rdtsc();
385 clocks += (
rdtsc() - before);
388 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
397 for (
auto _ : state) {
398 uint64_t before =
rdtsc();
406 clocks += (
rdtsc() - before);
409 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
416 for (
auto _ : state) {
428 for (
auto _ : state) {
441 for (
auto _ : state) {
444 state.ResumeTiming();
fr add_impl(const fr &x, fr &y)
std::vector< bb::fr > oldx
void sqr_bench(State &state) noexcept
void addaddmul_bench(State &state) noexcept
void field_bench(State &state) noexcept
std::vector< bb::fr > oldy
void sub_bench(State &state) noexcept
void self_add_bench(State &state) noexcept
fr unary_minus_impl(const fr &x)
void invert_bench(State &state) noexcept
void sqr_assign_bench(State &state) noexcept
fr subaddmul_impl(const fr &x, const fr &y, const fr &z)
fr mul_impl(const fr &x, const fr &y)
void add_bench(State &state) noexcept
fr addaddmul_impl(const fr &x, const fr &y, const fr &z)
void field_mixed_add(const fr &x1, const fr &y1, const fr &z1, const fr &x2, const fr &y2, fr &x3, fr &y3, fr &z3)
fr sub_impl(const fr &x, fr &y)
fr mul_assign_impl(const fr &x, const fr &y)
void mul_bench(State &state) noexcept
void unary_minus_bench(State &state) noexcept
constexpr size_t NUM_INVERSIONS
void mul_assign_bench(State &state) noexcept
fr self_add_impl(const fr &x, fr &y)
constexpr size_t NUM_POINTS
fr sqr_assign_impl(const fr &x)
void pow_bench(State &state) noexcept
void subaddmul_bench(State &state) noexcept
void hash_bench(State &state) noexcept
Entry point for Barretenberg command-line interface.
BENCHMARK(bench_commit_structured_random_poly< curve::BN254 >) -> Unit(benchmark::kMillisecond)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr uint256_t modulus
BB_INLINE constexpr field pow(const uint256_t &exponent) const noexcept
BB_INLINE constexpr void self_sqr() &noexcept
constexpr field invert() const noexcept
static field random_element(numeric::RNG *engine=nullptr) noexcept
BB_INLINE constexpr field sqr() const noexcept