8#include <benchmark/benchmark.h>
10using namespace benchmark;
121 __asm__ __volatile__(
"mrs %0, pmccntr_el0" :
"=r"(pmccntr));
126 __asm__ __volatile__(
"rdtsc" :
"=a"(lo),
"=d"(hi));
127 return (
static_cast<uint64_t
>(hi) << 32) | lo;
171 for (
auto _ : state) {
172 uint64_t before =
rdtsc();
174 clocks += (
rdtsc() - before);
177 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
194 for (
auto _ : state) {
195 uint64_t before =
rdtsc();
197 clocks += (
rdtsc() - before);
200 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
217 for (
auto _ : state) {
218 uint64_t before =
rdtsc();
220 clocks += (
rdtsc() - before);
223 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
240 for (
auto _ : state) {
241 uint64_t before =
rdtsc();
243 clocks += (
rdtsc() - before);
246 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
264 for (
auto _ : state) {
265 uint64_t before =
rdtsc();
267 clocks += (
rdtsc() - before);
270 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
288 for (
auto _ : state) {
289 uint64_t before =
rdtsc();
291 clocks += (
rdtsc() - before);
294 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
312 for (
auto _ : state) {
313 uint64_t before =
rdtsc();
315 clocks += (
rdtsc() - before);
318 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
336 for (
auto _ : state) {
337 uint64_t before =
rdtsc();
339 clocks += (
rdtsc() - before);
342 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
362 for (
auto _ : state) {
363 uint64_t before =
rdtsc();
365 clocks += (
rdtsc() - before);
368 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
388 for (
auto _ : state) {
389 uint64_t before =
rdtsc();
391 clocks += (
rdtsc() - before);
394 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
403 for (
auto _ : state) {
404 uint64_t before =
rdtsc();
412 clocks += (
rdtsc() - before);
415 double average =
static_cast<double>(clocks) / (
static_cast<double>(count) *
static_cast<double>(
NUM_POINTS));
422 for (
auto _ : state) {
434 for (
auto _ : state) {
447 for (
auto _ : state) {
450 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(vector_of_evaluations) -> DenseRange(15, 21) ->Unit(kMillisecond) ->Iterations(1)
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